home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / Empty.adf / SuperBasePro.Supplement3 < prev   
Text File  |  1992-02-07  |  94KB  |  2,499 lines

  1.         SUPERBASE PROFESSIONAL DATABASE MANAGEMENT SYSTEMS
  2.                 SUPPLEMENT 3
  3.  
  4.                 CONTENTS
  5.  
  6. 1. VOLUME 1: NEW FEATURES                    1-1
  7. Keyboard Equivalents                        1-1
  8. Validation Help Dialogs                        1-1
  9. Lookup                                1-3
  10. Process Import                            1-5
  11. Process Export                            1-9
  12. Mail Merge                            1-11
  13. Using Process Comms                        1-12
  14.  
  15. 2. DML KEYWORDS                            1-15
  16. BLANK                                1-15
  17. ENTER                                1-17
  18. EXPORT                                1-20
  19. IMPORT                                1-23
  20. LOAD SET                            1-25
  21. OPEN FIELDS                            1-26
  22. REQUEST                                1-27
  23. SELECT FORM ROW                            1-30
  24. SET EDIT                            1-31
  25. SET HEADING                            1-31
  26. SET NOW                                1-32
  27. SET TODAY                            1-32
  28. UPDATE FORM ROW                            1-33
  29. Commd unfrt Program Control                    1-34
  30. Report Functions                        1-36
  31. COUNT                                1-37
  32. MAX                                1-38
  33. MEAN                                1-38
  34. MIN                                1-39
  35. SD                                1-40
  36. SUM                                1-40
  37. VAR                                1-41
  38.  
  39.                 i
  40.  
  41. 3. FORMS EDITOR                            1-42
  42. Status                                1-42
  43. Listing the Directory                        1-43
  44. Changing the Directory                        1-43
  45. Field Options                            1-44
  46. Attributes                            1-44
  47. Selecting Multiple Objects                    1-45
  48. Printing Forms                            1-46
  49. Generating Reports                        1-46
  50. Transaction Handling                        1-47
  51.  
  52. 4. OTHER FEATURES                        1-54
  53.  
  54. 5. KEY CONTROLS                            1-56
  55.  
  56.                 ii
  57.  
  58. 1. VOLUME 1: NEW FEATURES
  59.  
  60. KEYBOARD EQUIVALENTS
  61. Superbase now provides the following keyboards equivalents for the buttons
  62. on the control panel:
  63.  
  64. BUTTON        KEY
  65. Pause        Space bar
  66. Stop        Ctrl C
  67. First        Shift left arrow (Amiga)/ Home (Atari)
  68. Rewind        Shift up arrow (Amiga)
  69. Previous    Left arrow
  70. Current record    Up arrow/down arrow
  71. Next        Right arrow
  72. Fast Forward    Shift down arrow (Amiga)
  73. Last        Shift right arrow (Amiga)/ Insert (Atari)
  74. Key lookup    ?
  75. Filter        =
  76. External file    *
  77.  
  78. NOTE: THE KEYBOARD EQUIVALENTS TO THE CONTROL PANEL BUTTONS DO NOT OPERATE
  79. WHEN A SUPERBASE INPUT CURSOR IS ACTIVE (WHEN IT IS SHOWN ON SCREEN).
  80.  
  81. VALIDATION HELP DIALOGS
  82. On page 2-19, Volume 1, you will find an explanation of how to create your
  83. own Validation Help Messages. These allow you to define a single line
  84. message which explains exactly why the data is invalid. However, there are
  85. some circumstances in which a single line message is not very helpful. An
  86. example would be the following validation formula which checks the data you
  87. enter against the data in another file:
  88.  
  89. LOOKUP (Stockcode.Invline, Stockcode.Stock) ELSE "Stock code not found in
  90. Stock file"
  91.  
  92. When you enter the code for a stock item into the Invline file, the formula
  93. uses the LOOKUP function to check whether the code exists in the Stock
  94. file. The trouble is that if users make a mistake, it is probably because
  95. they are not sure what the code is for a particular stock item. Ideally,
  96. they should be shown a list of all the stock items in the file together
  97. with their codes.
  98.  
  99.                 S-1
  100.  
  101. This is just what validation help dialogs do. They display a list of all
  102. the acceptable data inputs, and allow the user to select an item by
  103. clicking on it (without having to type it in). To display a help dialog,
  104. you need to use the REQUEST command in your validation formula: For the
  105. example above, the formula would be:
  106.  
  107. LOOKUP (Stockcode.invline, Stockcode.Stock) ELSE 
  108. REQUEST "Stock code not found", "Select another stock code", 20, a%,
  109. Stockcode.Invline, 40, Stockcode.Stock,  Description.Stock
  110.  
  111. When the user enters the wrong stock code, the following dialog will
  112. appear:
  113.  
  114. Stock code not found
  115. Select another stock code
  116. AEG3    AEGIS Draw Plus
  117. AMI1    XT Bridgeboard with 5.25 Diskdr
  118. AMI2    CLI-MATE
  119. AMI3    SUPRADRIVE 20mB Hard Disk
  120. AMI4    SUPRADRIVE 60mB Hard Disk
  121. AMI5    Megaboard 2
  122. AMI6    Amiga SUPERBASE PERSONAL
  123. --------------------------------------------------
  124. AEG4
  125.             OK    CLEAR    CANCEL
  126.  
  127. Provided the first field is an indexed field, type the first letter of the
  128. stock code would bring up a set of stock codes beginning with that letter.
  129.  
  130. Alternatively, you can use the scroll bars or the cursor keys to scroll
  131. down the list. Double clicking on any item in the list automatically places
  132. the item into the field specified (in this example, the Stockcode.Invline
  133. field).
  134.  
  135. Note that for validation formulas you can only use dialog type 20. A full
  136. description of this type of dialog is given on page 27 of this supplement
  137. under the entry for the REQUEST command. Here we will just explain how the
  138. example formula works.
  139.  
  140. The first two parameters for the REQUEST command specify the validation
  141. message. As with other types of dialog, you can leave these blank by
  142. entering two empty strings: i.e., the command would start with:
  143.  
  144. REQUEST "", "", ...
  145.  
  146. The next parameter 20 defines the dialog type. The numeric variable a% is
  147. assigned a value of 1 if the user clicks on OK, and 0 for CANCEL.
  148.  
  149.                 S-2
  150.  
  151. Stockcode.Invline is the name of the field to which the formula is
  152. attached. The item you select will be entered into this field.
  153.  
  154. 40 specifies the width of the dialog in terms of the number of characters.
  155.  
  156. The remaining two parameters - Stockcode.Stock and Description.Stock -
  157. specify the fields which are to be displayed in the dialog. The first field
  158. is the one that will be selected for your data entry and is therefore
  159. compulsory. As an option, you may also specify one or two extra fields to
  160. provide the user with additional information about the data.
  161.  
  162. LOOKUP
  163. In Chapter 2, Volume 1, there is a section which describes the two ways of
  164. using the LOOKUP function in a file definition. The description of the
  165. second way - using LOOKUP for cross-file calculation - is misleading and
  166. needs to be modified. In this section, we first explain the problem and
  167. then give a solution to it.
  168.  
  169. Cross-file calculation uses a calculation formula in combination with
  170. LOOKUP to extract data from another file. The manual gives an example
  171. involving two fields, Stockcode and Unit_Cost, in an Orders file. The
  172. Stockcode field has the following validation formula attached to it:
  173.  
  174. LOOKUP (Stockcode.Orders, Stockcode.Stock)
  175.  
  176. When new data is entered in the Stockcode field, the formula checks that is
  177. exists in the Stock file. In doing this it also makes the record (which
  178. contains the same code) in the Stock file current. The manual suggests that
  179. you can then use the following calculation formula to read the appropriate
  180. unit cost from the Stock file into the Unit_Cost field in the Orders file:
  181.  
  182. Unit_Cost.Stock
  183.  
  184. This formula would be attached to the Unit_Cost field in the Orders file.
  185.  
  186. This approach works perfectly when you enter new data, but it may create
  187. problems when you edit the existing data. Suppose the cursor is active in
  188. the Stockcode field; if you now press the Escape key and enter a new stock
  189. code, the LOOKUP formula will be executed and the correct record in the
  190. Stock file (the secondary file) will be selected. And the value that is
  191. read into the Unit_Cost.orders field without altering the contents of the
  192. Stockcode.Orders
  193.  
  194.                 S-3
  195.  
  196. field, LOOKUP is not executed and the correct record in the secondary file
  197. is not selected. The calculation formula attached to Unit_Cost.Orders
  198. continues to work and extracts data from the Stock file. But because the
  199. current record in the Stock file has not changed since the previous
  200. operation, the data it contains will probably be incorrect for the current
  201. Orders record.
  202.  
  203. The solution to this problem is to include another LOOKUP as part of the
  204. calculation formula using a ternary operator. For example, the formula
  205. attached to Unit_Costl.Orders could be:
  206.  
  207. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  208. Unit-Cost.Stockcode: 0
  209.  
  210. The effect of this formula is to force a LOOKUP on the Stock file whenever
  211. new data is entered in the Unit_Cost.Orders field. First it checks to see
  212. whether the stock code in the current record in the Orders file exists in
  213. the Stock file. If it does exist, it makes the matching record in the Stock
  214. file current. The condition expressed by the ternary operator has been
  215. satisfied, so the first value after the question mark - i.e. the contents
  216. of Unit_Cost.Stock - is assigned to Unit_Cost.Orders.
  217.  
  218. If the condition is not satisfied, the second value - in this case, a value
  219. of zero - is assigned. It is up to you to decide what action is to be taken
  220. if the LOOKUP is unsuccessful. With string fields, you may want to assign a
  221. text string indicating that an error has occurred, as in:
  222.  
  223. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  224. Description.Stock: "Error"
  225.  
  226. This formula would be attached to the Description field in the Orders file.
  227. If the stock code does not exist in the Stock file, it assigns the string
  228. "Error" to the field.
  229.  
  230. Alternatively, you could define a formula which left the contents of the
  231. Description field unaltered when an error occurs:
  232.  
  233. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  234. Description.Stock: Description.Orders
  235.  
  236.                 S-4
  237.  
  238. PROCESS IMPORT
  239. This option has several different applications:
  240. As a file conversion utility it takes a file created in another program and
  241. turns it into a Superbase file. In one step it converts files from Lotus, 
  242. Logistix, or Dbase into Superbase's own format. From other spreadsheet
  243. programs it will also convert files which have been stored in the DIF
  244. format.
  245.  
  246. It allows you to read ASCII data into a Superbase file. Almost all software
  247. packages are capable of producing ASCII files, so you will use this
  248. facility to import files which cannot be directly converted by the first
  249. method.
  250.  
  251. Alternatively, you can produce an ASCII file by exporting the records in a
  252. Superbase file; so Import can also be used to transfer or add records from
  253. one Superbase file to another.
  254.  
  255. The next four sections describe these features in more detail. Then there
  256. are three further sections which explain how to use the Import option,
  257. giving the exact procedure for each type of application.
  258.  
  259. FILE TYPES
  260. Superbase recognizes the following file types:
  261. ASCII delimited files
  262. ASCII fixed length files
  263. DBASE '.dbf' files
  264. LOTUS files with extensions '.wks' or 'wk1'
  265. LOGISTIX '.lgx' files
  266. DIF files
  267.  
  268. In ASCII delimited format, the data is stored as ASCII characters but the
  269. file also uses special characters (separators) to mark the end of each data
  270. item such as a field or a record. When you export records from a Superbase
  271. file, they are stored in this format - in an ASCII delimited file.
  272.  
  273. In ASCII fixed length files each field and record occupies a fixed amount
  274. of space on disk and the data is stored as a continuous string of ASCII
  275. characters.
  276.  
  277. '.dbf' files are the Dbase equivalent of Superbase's '.sbf' files; i.e.,
  278. this is the format used in Dbase II and III for standard database files.
  279.  
  280. The Lotus and Logistix formats are used for spreadsheet data files.
  281.  
  282.                 S-5
  283.  
  284. DIF is a standard format used by many software packages for exporting
  285. files. In this respect it is similar to ASCII format but has the advantage
  286. of allowing the file to be converted to the Superbase format in one step.
  287.  
  288. FILE CONVERSION
  289. Files in the ASCII formats must be read into a pre-defined Superbase file
  290. (see the next section). With the other formats, Import performs the
  291. conversion automatically and creates new '.sbf',  'sbd' and index files in
  292. the current Superbase directory. The new files (which together make up a
  293. single database file) will take the same name as the file that has been
  294. converted.
  295.  
  296. When you import spreadsheet data into a database, each row is taken as a
  297. record, and the individual cells in a row represent fields. Any empty
  298. columns in the spreadsheet are ignored.
  299.  
  300. Clearly, it is not practical to convert a spreadsheet file into a database
  301. file unless the data is structured as a series of repeated rows. However,
  302. Superbase gives you the option of converting just one block in the
  303. spreadsheet grid by specifying a range of cells. You can also use a row of
  304. labels to define the field names in the Superbase file. If the spreadsheet
  305. labels are specified, the fields take the grid's column letter with an
  306. underscore character added to it; i.e., all the cell data in the first
  307. column would be stored in a field named "a_".
  308.  
  309. CONVERTING ASCII FILES
  310. To convert an ASCII file you must first create a new Superbase file to hold
  311. the data. This in turn means that you will need to know the following
  312. information about the ASCII file's structure:
  313.  
  314. The number of fields in a record.
  315. The number of characters in each field. For delimited ASCII files, this
  316. will be
  317. The maximum number of characters in a field.
  318. The type of data each field contains: numeric, string, data, or time.
  319.  
  320. Once you have acquired this information, you must define a Superbase file
  321. (using the New File option on the Project menu) which has the same
  322. structure. For example, if the first field in the ASCII file contains
  323. numeric data, the first file in the Superbase file must be numeric and it
  324. must have the same numeric format. One way of finding out these details is
  325. to display the file on screen.
  326.  
  327. You will then be able count the characters for the different fields and
  328. check the way numeric data is stored. Use the List option on the System
  329. menu to
  330.  
  331.                 S-6
  332.  
  333. display ASCII delimited files. Provided there are not more than 255
  334. characters on a line (i.e., the total number of characters in the record
  335. must not be more than 255), you can also use List for ASCII fixed length
  336. files. If the lines are over this limit, you may be able to check the
  337. format by printing the ASCII file.
  338.  
  339. IMPORTING ASCII FILES: PREREQUISITES
  340. As far as importing the ASCII data is concerned it doesn't matter how or
  341. where the file was created. So you should take the same steps whether you
  342. are transferring data from one Superbase file to another, or converting a
  343. file from another program; the prerequisites are the same:
  344.  
  345. The file into which the data is to be imported is always the current file.
  346. Make sure you have opened this file before you select Import.
  347.  
  348. The fields into which data is to be imported must be of the correct type: a
  349. numeric field for numbers, a date field for dates, etc.
  350.  
  351. Superbase will signal an error if Import tries to store a blank field that
  352. has Required status. Remove such status temporarily with Project Edit.
  353.  
  354. Validation checks will be made on all fields in records created by Import, 
  355. whether they are being imported into or not. Again, you may need to
  356. temporarily remove Validations using Project Edit.
  357.  
  358. You can specify that only certain fields are imported by selecting these
  359. fields in the Open Fields list (select Open Fields from the Project menu).
  360. If you are importing into just the set of open fields, Superbase will
  361. create records with the other fields left blank. Index entries for such
  362. fields may be created, but they too will be blank.
  363.  
  364. If you are importing data from an ASCII delimited file, you may need to
  365. specify which characters it uses as separators (or delimiters). On the
  366. Amiga, the default values are 44 (the comma) for the field separator and 10
  367. (the line feed character) for the record separator. GEM has the same value
  368. for the field separator, but uses two characters for the record separator,
  369. 13 (the carriage return character) and 10(the line feed character). If the
  370. separators in the ASCII file are different from these, select Options on
  371. the Set menu and alter the separator values accordingly.
  372.  
  373.                 S-7
  374.  
  375. USING IMPORT
  376. Whatever the application, the first stage in the Import procedure is always
  377. the same. Select Import from the Process Menu. Superbase displays the
  378. Import dialog. It shows the file type options with selection buttons to the
  379. left of them. Click on the button corresponding to the type of file you
  380. wish to import. After selecting one of the spreadsheet types, you have to
  381. option of specifying the range and a label row. The first value for the
  382. range should be the coordinates for the cell at the top left-hand corner;
  383. the second value determines the bottom right-hand cell. Coordinates are
  384. entered in the conventional way for spreadsheets; for example, A12 or AF30.
  385.  
  386. If the range is not specified, Superbase converts the entire spreadsheet
  387. file. To specify that a row of labels will be used for field names, enter
  388. the number of the row. If you leave this box blank, the field name for a
  389. column of cells is formed by taking the column identifier and adding an
  390. underscore character to it.
  391.  
  392. The next step depends on whether you have selected ASCII files or one of
  393. the other types. For ASCII files there is an interim stage where you can
  394. set a filter on the file that is to be imported.
  395.  
  396. ASCII FILES ONLY
  397. When you click on OK in the Import files type dialog. Superbase displays
  398. the Import Filter dialog:
  399.  
  400. This allows you to determine which records in the ASCII file are to be
  401. imported into the Superbase file. The dialog is the same as the normal
  402. Filter dialog. See Chapter 1, for a detailed explanation of how Filters
  403. work. Build up your Filter Command Line in the normal way and click on OK.
  404.  
  405. SELECTING THE IMPORT FILE
  406. You will now be presented with a file selection dialog. If you have
  407. specified an ASCII format, it lists all the files in the current directory.
  408. Otherwise it only shows files of a particular type; i.e., if dBase is
  409. specified, the dialog lists files with the extension name '.dbf' (but it
  410. doesn't show the extension name).
  411.  
  412. You may also type in a path name and file name for a file in another
  413. directory,  leaving out the extension name if it is not an ASCII file.
  414. Select the file you wish to import or convert and click on OK. For ASCII
  415. files this completes the procedure. If one of the file conversion types has
  416. been specified - dBase, 
  417.  
  418.                 S-8
  419.  
  420. Lotus, Logistix and DIF - Superbase displays a new index dialog where you
  421. can select the field or fields on which the new file is to be indexed.
  422.  
  423. Note that when you import a file under program control, this option is not
  424. available and the file is indexed on the first field.
  425.  
  426. PROCESS EXPORT
  427. This function allows you to convert a Superbase file to a different format
  428. so that it can be loaded into another software package. Generally, you will
  429. export files for use in a spreadsheet or another database program, but you
  430. may also want to load Superbase data into a wordprocessing program or a
  431. desktop publishing package. The only restriction is that the exported file
  432. must be in a format that is recognized by the other program. This should
  433. not be a problem since Export offers the same range of formats or file
  434. types as Import including two ASCII file types. Even if the other program
  435. does not provide any file conversion facilities, it will almost certainly
  436. be able to accept ASCII files. In addition, Export is used to convert data
  437. from a Superbase file into ASCII format so that it can be imported into
  438. another Superbase file.
  439.  
  440. PREPARING TO EXPORT A FILE
  441. Before you select Export, you can specify which fields are to be exported,
  442. using the Open Fields option on the Project menu. In creating the new
  443. records Superbase will only take the data from the fields in the Open
  444. Fields list. If you intend to convert the Superbase file into an ASCII
  445. delimited file, two further preliminary options are available:
  446.  
  447. Field and Record separators. Depending on the application, you may want to
  448. change the default values for the field and record separators. To do this, 
  449. select Options on the Set menu.
  450.  
  451. Quotation marks. The Options dialog in the Set menu allows you to specify
  452. that every field exported is enclosed in quotation marks. This is necessary
  453. if the data contains the character used as a field separator; for example,
  454. addresses,  dates or numbers may contain commas.
  455.  
  456.                 S-9
  457.  
  458. USING PROCESS EXPORT
  459. Make sure that the file you wish to export is the current file. Then select
  460. Export from the Process Menu. Superbase displays the Export file type
  461. dialog. Details of the different file types are given on page 5. Here, we
  462. only need to mention that the fields in ASCII fixed length files are
  463. exported in the format set in the current file definition. If the data in a
  464. field is shorter than the length set in the file definition, Superbase pads
  465. it out with spaces.
  466.  
  467. Click on the button corresponding to the file type required. If you select
  468. a spreadsheet file type, you also have the option of specifying that labels
  469. are included - Superbase will export the field names as a set of labels
  470. along the first row of the spreadsheet data.
  471.  
  472. Now click on the OK button. Superbase displays the Export filter. Use this
  473. to determine which records are to be exported. If you wish to export the
  474. entire file, leave the Filter Command line blank; otherwise, build up the
  475. Command Line in the normal way.
  476.  
  477. When you click on OK, Superbase displays the Export File Name dialog. Enter
  478. the name the file is to have when it has been converted. With ASCII files,
  479. you should supply an extension name; we suggest that you adopt a convention
  480. for naming exported ASCII Files, such as ending each with the extension
  481. '.exp'. If you have specified one of the other file types, you should not
  482. include the extension name: Superbase will add the appropriate extension
  483. for you.
  484.  
  485. Superbase then processes the database file, checking each record to see
  486. whether it matches the conditions set up in the Filter. If it does,
  487. Superbase creates a copy of the data in the currently open fields and
  488. stores it on disk.
  489.  
  490. For program applications, variables can be used in place of fields. The
  491. fixed length option applies to variable names in the same way as to field
  492. names.
  493.  
  494.                 S-10
  495.  
  496. MAIL MERGE
  497. Two enhancements have been made to the Mail Merge option on the Process
  498. menu: variables can now be entered in a text document in place of fields,
  499. and blank lines caused by empty fields are closed up. Variables will be
  500. mainly used in conjunction with a Superbase program so this feature is
  501. covered below in the section headed Programming Mail Merge.
  502.  
  503. BLANK LINES
  504. One of the problems with merging a set of address fields is that in some
  505. records one of the fields may be empty. For instance, the address may not
  506. include a city name. If this line were left blank when the letter was
  507. printed,  there would be an unsightly gap between the street name and the
  508. post code. Superbase solves the problem by checking whether a field (or
  509. variable) is empty or not. If it is empty, the field is not merged and the
  510. fields above and below are printed on consecutive lines.
  511.  
  512. PROGRAMMING MAIL MERGE
  513. The menu-based facility should be sufficient for most of your mailing
  514. requirements. But for more complicated tasks, it is sometimes preferable to
  515. bypass the menu and run Mail Merge under program control. The two features
  516. that make program control possible are:
  517.  
  518. The use of variables in a Text Editor document.
  519. The DML command? TEXT MERGE
  520. Variables have the same function in a Mail Merge document as fields. When
  521. you run Mail Merge, Superbase inserts the value of the variable in place of
  522. its name. But any variables used must be assigned a value in a program or
  523. from the command line before you merge a document. If they are not,
  524. Superbase will display a 'variable not defined' error message.
  525.  
  526. As with fields, variable names must be enclosed by the ampersand character.
  527. Any variable can be used except an array variable. Usually, your text
  528. document will combine fields and variables; but it may also contain
  529. variable names only.
  530.  
  531. The ? TEXT command does two things: it merges variable and field data (from
  532. the current record) with the text file in memory; and it then sends the
  533. text file to the current output device. If the current device is the
  534. screen, ? TEXT MERGE is equivalent to running Mail Merge for just one
  535. record only and displaying the result on screen.
  536.  
  537.                 S-11
  538.  
  539. Superbase also provides the MERGE command but this simply duplicates the
  540. menu option. Using ? TEXT MERGE gives you exact control over the mail merge
  541. process since it allows you to set variables or open a different file while
  542. the merge operation in under way. Combining this with variables in a
  543. program greatly extends the scope of Mail Merge. It makes it possible to
  544. create far more sophisticated applications involving multiple files,
  545. conditional merging or even "boilerplating".
  546.  
  547. USING PROCESS COMMS
  548. Select Comms from the Process menu. Superbase displays the communications
  549. parameters dialog. Before a file can be transferred, both users must set up
  550. all the parameters (except Comms port) in this dialog in the same way. For
  551. each of the following parameters you must select an option by clicking on
  552. its corresponding button:
  553.  
  554. BAUD RATE
  555. This determines the speed at which the file data is transmitted. Five
  556. different baud rates are available:
  557.  
  558. 9600, 4800, 2400, 1200, or 300
  559.  
  560. PARITY
  561. The parity options are:
  562. None  Even  Odd
  563.  
  564. If you select even or odd parity, an additional bit will be used to check
  565. the value of each data word transmitted. Even parity means that the total
  566. sum of the bits in a data word will be an even number; with odd parity, the
  567. total will be an odd number.
  568.  
  569. NUMBER OF BITS PER CHARACTER
  570. The options are:
  571.  
  572. 8  7  6  5
  573.  
  574. STOP BITS
  575. These mark the end of a data word. There can be either 1 or 2 stop bits.
  576.  
  577. COMMS PORT
  578. Select 1 or 2 corresponding to the serial port used for the modem or
  579. connecting cable.
  580.  
  581. TRANSMIT/RECEIVE
  582. Click on the Transmit button if you are sending a file, click on Receive to
  583. receive a file.
  584.  
  585.                 S-12
  586.  
  587. FILE HEADER
  588. When this is set to On, Superbase transmits the file's name and the file is
  589. saved under this name at the receiving end. When File Header has been set
  590. to Off, the receiver specifies the name under which the file is to be
  591. saved. Superbase displays a file selection dialog before transmission takes
  592. place. If you are at the receiving end of the comms link, you must then
  593. enter a name for the file or select an existing name from the dialog panel.
  594. Note that when the file is transmitted, the last 128 byte block will be
  595. padded out with zeros.
  596.  
  597. TRANSFERRING A FILE
  598. When both users have set the parameters in the comms dialog, they should
  599. click on OK. If you have selected Receive, the computer will then wait for
  600. a file to be transferred from the other end of the link.
  601.  
  602. If you are transferring a file, you will be presented with a file selection
  603. dialog for the files in the current directory. Select the file you wish to
  604. send and click on OK. Superbase will then proceed to transmit the file.
  605.  
  606. During transmission, a further dialog appears on both machines showing the
  607. status of the transfer. It displays the number of blocks successfully
  608. transmitted or received, and indicates errors. Superbase uses the Xmodem
  609. protocol for file transfer. Each block of file data is checked for errors
  610. as it is transmitted. If errors occur, the block is transmitted again.
  611.  
  612. When the transfer is completed, the file is stored on disk (at the
  613. receiving end) under the same name with which it was transmitted.
  614.  
  615. NOTE: If you are transmitting files over the public telephone network at a
  616. baud rate higher than 1200, you may experience problems with file transfer.
  617. In order to reduce the number of errors, you should select a lower baud
  618. rate.
  619.  
  620. THE TRANSFER STATUS DIALOG
  621. During file transfer, Superbase displays a dialog showing the status of the
  622. transmission. The top of the dialog indicates whether the user is
  623. transmitting or receiving and, if the File Header has been set to On, it
  624. also gives the file name. Below this, there are three headings: Blocks,
  625. Count, and Errors. Blocks shows the number of blocks that are still to be
  626. transmitted, Count gives the number that have been successfully
  627. transmitted.
  628.  
  629.                 S-13
  630.  
  631. REMOTE TRANSMISSION
  632. The procedure for sending files via modem is as follows:
  633.  
  634. 1. Enter the receiver's number in the Autodial box in the comms dialog.
  635. 2. Select Transmit.
  636. 3. Set the other comms parameters for baud rate, port number, etc.
  637. 4. Click on OK.
  638. 5. Select the file or files (using wild cards) for transmission.
  639.  
  640. Notice that there is no Remote/Local option in the comms dialog. Provided
  641. the modem is on line and the DCD line is off, Superbase detects that Remote
  642. transmission is required and proceeds with the operation as soon as you
  643. have selected a file.
  644.  
  645. At the receiving end, you must select Receive and then set up the other
  646. parameters so that they have the same values as in the transmitter's comms
  647. dialog (although the port number does not need to be the same). If your
  648. modem has an autoanswer facility, this must be turned on. If it doesn't
  649. have autoanswer, the ring indicator line from the modem must be connected
  650. to the computer's RS 232 port.
  651.  
  652. The next step is to click on OK in the comms parameters dialog. If the File
  653. Header option has been set to Off, you will first be presented with the
  654. file selection dialog where you can enter the name under which the file is
  655. to be saved. Superbase will then display the "busy" symbol (an hour glass
  656. icon) and will wait to be contacted by the transmitter. If the File Header
  657. option has been set to On, transmission will proceed as soon as the comms
  658. link has been established.
  659.  
  660.                 S-14
  661.  
  662. 2 DML KEYWORDS
  663. This part of the supplement gives the keyword entries for the following new
  664. commands and functions:
  665.  
  666. LOAD SET
  667. SELECT FORM ROW
  668. SET EDIT
  669. SET HEADING
  670. SET NOW
  671. SET TODAY
  672. UPDATE FORM ROW
  673. Comms commands
  674. Report functions
  675.  
  676. The last two sets of keywords are covered in separate sections under the
  677. headings Comms under Program Control, page 34, and Report Functions, page
  678. 36. Also provided here are the revised entries for keywords whose syntax
  679. has been amended or expanded:
  680.  
  681. BLANK 
  682. ENTER
  683. EXPORT
  684. IMPORT
  685. OPEN FIELDS
  686. REQUEST
  687.  
  688. BLANK
  689. Purpose
  690. Creates a blank record in memory.
  691.  
  692. SYNTAX
  693. BLANK [FORM]/ [DUPLICATE] [FILE sbfname]
  694.  
  695. COMMENTS
  696. When you want to create a new record under program control, issuing a BLANK
  697. statement is the first step in the process. It sets up an empty record
  698. ready for data entry. There are several ways in which you can then enter
  699. data into the record's fields.
  700.  
  701.                 S-15
  702.  
  703. Using BLAND with ENTER allows the user to type in the data for a new record
  704. from the keyboard. Together these two commands have the same effect as the
  705. RECORD NEW option in the RECORD menu. Alternatively, you can enter data
  706. from within a program, by assigning it directly to the fields in the new
  707. record. Typically, this would be the method you used to create new records
  708. by reading data in from another file on disk.
  709.  
  710. The FORM parameter is used with a multi-file form; BLANK FORM creates
  711. records for each file represented in the form. When a form is open but the
  712. FORM parameter is not included, BLANK only creates a blank record for the
  713. current file.
  714.  
  715. DUPLICATE is the program equivalent of Duplicate on the Record menu. It
  716. creates a copy of the current record and allows the user to create a new
  717. record by editing the copy. This parameter can only be used with a file,
  718. not a form. With the FILE parameter, you can create a blank record in a
  719. file which is open but not current.
  720.  
  721. EXAMPLES
  722.  
  723. 1 BLANK
  724. 2 BLANK FILE "abc"
  725. 3 BLANK
  726.   ENTER
  727.   STORE
  728. 4 BLANK
  729.   Firstname.address="John"
  730.   Lastname.address="Smith"
  731.   STORE
  732. 5 BLANK DUPLICATE
  733.   ENTER
  734.   STORE
  735.  
  736. The first example creates a new record in the current file. Example 2
  737. creates a new record in another open file. Example 3 creates a new record
  738. in the current file, and allows the user to enter data in the record; then
  739. it saves the record on disk. Example 4 creates a new record, and enters
  740. data into the fields Firstname and Lastname; then saves the record on disk.
  741. Example 5 allows the user to create a new record by editing the current
  742. record.
  743.  
  744.                 S-16
  745.  
  746. ENTER
  747. Purpose
  748. Allows the user to enter data in the current file or to edit the data in a
  749. record.
  750.  
  751. SYNTAX
  752. ENTER [field] [ROW nexpr1]]/[nexpr2] [TO field2 [ROW nexpr3]] /[,nexpr4]
  753.  
  754. COMMENTS
  755. ENTER works on the current file. Used on its own, it is equivalent to the
  756. Record menu option Edit. It displays the current record and allows you to
  757. edit it field by field, starting with the first field that is not Read
  758. Only. In effect,  ENTER temporarily hands over control from DML to
  759. Superbase itself. When you press Return after the last field in a record or
  760. when you move the cursor down to the bottom of the record, control is
  761. transferred back to DML.
  762.  
  763. The parameters for this command can only be used with a form. When a form
  764. is open and field1 or nexpr2 is specified without any further parameters,
  765. Superbase restricts the editing to just one field. You can supply either a
  766. field name or a field number where the number corresponds to the field's
  767. position in the field order; i.e. the entry order which was set when the
  768. form was created. After executing an ENTER command followed by field or
  769. nexpr2, Superbase makes the editing cursor active in the field specified;
  770. control is transferred back to DML when the user presses Return.
  771.  
  772. With TO or nexpr4, you can specify that a range of fields is available for
  773. editing. TO must be followed by a field name and restricts editing to the
  774. fields in the range field1 to field2. nexpr4 gives the number of fields
  775. that can be edited - from field1 or nexpr2 onwards. As an example, suppose
  776. you wanted to restrict data entry from four fields from Firstname through
  777. to City. Assuming Firstname is number 2 in the form's entry order and City
  778. is number 5,  you could use any of the following commands:
  779.  
  780. ENTER Firstname TO City
  781. ENTER 2 TO City
  782. ENTER 2, 4
  783. ENTER 2 TO City
  784. ENTER Firstname, 4
  785.  
  786.                 S-17
  787.  
  788. Superbase would make the cursor active in the Firstname field and allow you
  789. to enter data or edit Firstname and the next three fields.
  790.  
  791. You may want to specify a starting point without restricting yourself to a
  792. given number of fields. To do this, enter 0 as the second numeric
  793. parameter; e.g.:
  794.  
  795. ENTER 2, 0
  796.  
  797. or
  798.  
  799. ENTER Firstname, 0
  800.  
  801. Now you will be able to edit any field in the form starting from field 2.
  802. Control will be transferred to DML when you press Return in the last field.
  803. The ROW parameter is used for entering data in transactions. nexpr1
  804. specifies the number of the row at which you wish to start entering data,
  805. nexpr3 specifies the last row.
  806.  
  807. Note that ENTER can also be used to edit form calculations. But in this
  808. case you should supply the calculation's order number, not the calculation
  809. name. Thus suppose you wished to enter a new value in a calculation named
  810. Calc1% which had the order number 7; the correct command to do this would
  811. be:
  812.  
  813. ENTER 7
  814.  
  815. Because calculations on a form are treated as variables by DML, the
  816. command:
  817.  
  818. ENTER CALC1%
  819.  
  820. would only work correctly if Calc1% happened to contain the value of 7.
  821. When used in conjunction with BLANK, ENTER is equivalent to the Record menu
  822. option New, and allows you to enter data into a new record.
  823.  
  824. This command does not save a record; to save a new or edited record use the
  825. command STORE.
  826.  
  827. EXAMPLES
  828.  
  829. 1 OPEN FILE "aaa"
  830.   ASK "Record to edit"; x$
  831.   SELECT KEY x$
  832.   ENTER
  833.   STORE
  834.  
  835.                 S-18
  836.  
  837. 2 OPEN FILE "aaa"
  838.   BLANK
  839.   ENTER
  840.   STORE
  841. 3 ENTER Lastname
  842. 4 ENTER 4, 3
  843. 5 ENTER Cuscode TO Quantity
  844. 6 ENTER Cuscode ROW 3 TO Quantity ROW 5
  845.  
  846. Example 1 shows how to enter an existing record in order to edit it.
  847. Example 2 creates a new record. Example 3 restricts editing to the Lastname
  848. field. In example 4, fields (or calculations) 4 to 6 in the form's field
  849. order can be edited. Example 5 restricts editing to the fields from Cuscode
  850. to Quantity. The last example assumes there are transactions on the form
  851. and restricts editing to the fields in rows 3, 4 and 5.
  852.  
  853.                 S-19
  854.  
  855. EXPORT
  856. Purpose
  857. Exports to an external file from the current file.
  858.  
  859. SYNTAX
  860. The syntax for EXPORT varies according to the type of file being exported:
  861.  
  862. ASCII files
  863. EXPORT [FILEsbfname] [INDEXindex] [TO]filename
  864. [WHERE conditions/ASK] [USING params]/[USING FILE]
  865.  
  866. dbase files
  867. EXPORT [FILEsbfname] [INDEXindex] [TO]filename
  868. [WHEREconditions/ASK] USING "2"/"3"
  869.  
  870. Spreadsheet files
  871. EXPORT [FILEsbfname} [TO]filename
  872. [WHEREconditions/ASK] [USING LABELS]
  873.  
  874. COMMENTS
  875. This command is the program equivalent of the EXPORT option in the PROCESS
  876. menu. It converts a Superbase file to a specified format and stores it on
  877. disk. The filename parameter gives the name under which the file will be
  878. stored after it has been exported. It is this parameter that determines the
  879. file type. To export a file in dBase format, you must use the '.dbf'
  880. extension name. You must also specify whether it is to take the format for
  881. dBase II or dBase III by following the EXPORT command with the USING
  882. parameter. USING "2" exports in dBase II format, USING "3" exports in dBase
  883. III format. For example:
  884.  
  885. EXPORT "address.dbf" USING "3"
  886.  
  887. This converts the current Superbase database file to dBase III format. To
  888. convert a file to a spreadsheet format, you must give it one of the
  889. following extension names:
  890.  
  891. .wks (for Lotus files)
  892. .lgx (for Logistix files)
  893. .dif (for DIF files)
  894.  
  895.                 S-20
  896.  
  897. If you specify the USING LABELS option for spreadsheet files, the field
  898. names in the Superbase file will be exported as a row of labels.
  899.  
  900. To export a file in ASCII format, choose a different extension name from
  901. the ones listed above. Alternatively, you can omit the extension name for
  902. ASCII files.
  903.  
  904. Details of the syntax for exporting files in ASCII format are given at the
  905. end of this section. The next two parameters are used with all file types:
  906.  
  907. FILE sbfname specifies the Superbase file which is to be converted. If this
  908. parameter is not given, EXPORT takes data from the current open file.
  909.  
  910. WHERE conditions allows you to creates a filter to determine which records
  911. are copied to the export.conditions is set up in the same way as the
  912. command string in the Filter dialog. For an explanation of how the ASK
  913. parameter is used, see the entry for SELECT WHERE.
  914.  
  915. If INDEX indexname is not specified, the command exports records in the
  916. order of the current index. Use INDEX to specify a different order. This
  917. parameter is not available if you are exporting a spreadsheet file.
  918.  
  919. ASCII FILES
  920.  
  921. There are two ASCII file formats, ASCII delimited and ASCII fixed length.
  922. To select the ASCII fixed length format, you must enter the USING FILE
  923. parameter at the end of the command.
  924.  
  925. For ASCII delimited files, you may select the USING parameters option. This
  926. allows you to change the Export/Import parameters as specified in the
  927. Options dialog on the Set menu. These determine which characters Superbase
  928. used to separate fields and records in the ASCII file. You can also specify
  929. whether text fields are exported with or without quotation marks around
  930. them. If you do not specify USING parameters, Superbase will use the
  931. parameters which are set in the Options dialog.
  932.  
  933. USING takes three parameters, each enclosed by quotation marks and
  934. separated by commas. For example:
  935.  
  936.     USING "&", "$$", "0"
  937.  
  938. The first two parameters specify the field separation characters and the
  939. record separation characters. As in the Options dialog, you can define a
  940. separator using one character or two characters. The third parameter must
  941. be either 0 or 1; 0 for no quotation marks, 1 to include quotation marks.
  942.  
  943.                 S-21
  944.  
  945. If you want to use a non-printing character-the carriage return character
  946. or the line feed character, for example-as a separator, you need to enter
  947. its ASCII code with the CHR$ function. For example:
  948.  
  949.     USING "&", CHR$(13)+CHR$(10), "0"
  950.  
  951. defines the record separator as the carriage return character followed by
  952. the line feed character.
  953.  
  954. EXAMPLES
  955.  
  956. 1 EXPORT "aaa.dbf" USING "2"
  957. Exports the current file converting it to the dbase file "aaa.dbf" in the
  958. format for dBase II.
  959.  
  960. 2 EXPORT FILE "aaa" INDEX fielda TO "aaa.wks" WHERE
  961.   (datefield) < DAYS ("29 Apr 87")
  962. Exports records in the file "aaa" whose date field value is less than 29th
  963. April 1987. Stores them in Lotus file format with the name "aaa.wks".
  964.  
  965. 3 EXPORT FILE "aaa" TO "aaa.exp" USING "&", "##", "1"
  966. Exports the data in the file "aaa" to ASCII delimited the "aaa.exp", using
  967. the separators specified.
  968.  
  969. 4 EXPORT "aaa.exp" WHERE ASK USING FILE
  970. Exports the current file to the ASCII fixed length file "aaa.exp". When the
  971. commands is executed, ASK brings up a filter dialog where the user can
  972. enter the export filter conditions.
  973.  
  974.                 S-22
  975.  
  976. IMPORT
  977. Purpose
  978. Converts dBase and spreadsheet files into Superbase files, imports an ASCII
  979. file into an open file.
  980.  
  981. SYNTAX
  982. The syntax for this command varies according to type of file being
  983. converted or imported.
  984.  
  985. ASCII FILES
  986. IMPORT filename [TO FILEsbfname] [WHEREcondition / ASK]
  987. [USINGparameters] / [USING FILE]
  988.  
  989. dBase files
  990. IMPORTfilename.dbf
  991.  
  992. Spreadsheet files
  993. IMPORTfilename.lbx/.wks/.wks/.dif [USINGstrexpr1, strexpr2 [strexpr3]]
  994.  
  995. COMMENTS
  996. The extension name given as part of the filename parameter specifies the
  997. type of file that is to be read from disk. It also determines whether the
  998. file will be imported into an existing or converted into a new Superbase
  999. file.
  1000.  
  1001. dBase files
  1002. To convert a dBase file, you must supply the '.dbf' extension - no further
  1003. parameters are required. The file will be converted to Superbase database
  1004. file with an index on the first field.
  1005.  
  1006. Spreadsheet files
  1007. To convert a spreadsheet file, use one of the following extensions:
  1008.  
  1009. .lgx (for Logistix files)
  1010. .wks or .wk1 (for Lotus files)
  1011. .dif (for DIF files)
  1012.  
  1013. The first two parameters following USING specify the range of cells that is
  1014. to be converted. strexpr1 gives the address of the cell in the top
  1015. left-hand corner, strexpr2 gives the address of the bottom right-hand cell.
  1016. If the USING parameters are not entered, Superbase converts the entire
  1017. spreadsheet file.
  1018.  
  1019. With strexpr3, you can give the number of a row in the spreadsheet data
  1020. which contain labels. These will then be taken as the Superbase file's
  1021. field names.
  1022.  
  1023.                 S-23
  1024.  
  1025. If you leave this parameter out, the field names will be formed by taking
  1026. the spreadsheet's column identifiers and adding an underscore character to
  1027. them; i.e., data in column AB will be stored in field AB_.
  1028.  
  1029. ASCII files
  1030. With ASCII files, the data is imported into the current file or another
  1031. open file specified with the TO FILE parameters. To indicate an ASCII file
  1032. you can use any (or no) extension name except those listed above.
  1033.  
  1034. Superbase can import two types of ASCII file, ASCII fixed length and ASCII
  1035. delimited. The USING FILE parameter indicates that the file to be imported
  1036. is ASCII fixed length. If this is omitted, it is assumed that the file is
  1037. ASCII delimited.
  1038.  
  1039. With ASCII delimited files, USING parameters can be used to change the
  1040. default Import/Export values set in the Options dialog - i.e.to indicate
  1041. which characters are used for field and record separators, and whether the
  1042. field data is enclosed in quotation marks or not. For a description of USING
  1043. and the parameters it takes, see EXPORT.
  1044.  
  1045. With both ASCII file types, WHERE conditions allows the user to add a
  1046. filter to the IMPORT command. condition is a set up in the same way as the
  1047. command line in the Filter dialog. For details of the ASK parameters, see
  1048. SELECT WHERE.
  1049.  
  1050. EXAMPLES
  1051.  
  1052. 1 IMPORT "aaa.exp"
  1053. Imports the ASCII delimited file "aaa.exp" into the current open file.
  1054.  
  1055. 2 IMPORT "aaa.exp" TO FILE "aaa" WHERE (datefield) > DAYS ("29Apr87") USING FILE
  1056. Imports the ASCII fixed length file "aaa.exp" into the Superbase file
  1057. "aaa",  taking only the records whose date field value is later than 29th
  1058. April 1987.
  1059.  
  1060. 3 IMPORT "aaa.exp" WHERE ASK USING CHR$(44), CHR$(13), "0"
  1061. Imports the ASCII delimited file "aaa.exp" into the current open file, and
  1062. specifies that the file uses the comma and carriage return characters as
  1063. field and record separators. It also indicates that the field data is not
  1064. enclosed in quotation marks. The WHERE ASK parameter brings up a filter
  1065. dialog when the command is executed.
  1066.  
  1067.                 S-24
  1068.  
  1069. 4 IMPORT "aaa.dbf"
  1070. Converts the dBase file "aaa.dbf" into a Superbase file named "aaa.sbf".
  1071.  
  1072. 5 IMPORT "aaa.lgx"
  1073. Converts the Logistix file "aaa.lgx" into a Superbase file named "lgx".
  1074.  
  1075. 6 IMPORT "aaa.wks" USING "a1", k50", "1"
  1076. Converts the Lotus file "aaa.wks" into a Superbase file named "aaa.sbf".
  1077. The USING parameters specify that only the cells in the range a1 to k50 are
  1078. converted, and that the labels in row 1 are used as field names. Assuming
  1079. that every row and column within the range is occupied, the Superbase file
  1080. will have 50 records in it, with 11 fields to a record.
  1081.  
  1082. LOAD SET
  1083. Purpose
  1084. Loads the parameters file from current directory.
  1085.  
  1086. SYNTAX
  1087. LOAD SET
  1088.  
  1089. COMMENTS
  1090. The parameters file is called 'sb.par'. It contains details of a number of 
  1091. user-defined preferences and options governing a variety of Superbase
  1092. functions. Most of them are set in the Options dialog, but it also stores
  1093. other items such as the label settings, numeric format and date format. The
  1094. current parameters are stored on disk in the current directory (or in a
  1095. directory specified by the parameter file path) when you click on OK in the
  1096. Options dialog or with the command SAVE SET.
  1097.  
  1098. The parameters file for the current directory is automatically loaded when
  1099. you change to that directory. Typically LOAD SET would be used to restore a
  1100. set of parameters after some of them have been altered, for example, to
  1101. restore the previous numeric format after it has been changed using the
  1102. NUMBASE command. You may also want to create multiple 'sb.par' files for
  1103. different applications storing them under different names in a special
  1104. directory. After copying one of them to the current directory and changing
  1105. its name back to 'sb.par', you would then use the LOAD SET command to
  1106. activate its parameters.
  1107.  
  1108.                 S-25
  1109.  
  1110. EXAMPLES
  1111.  
  1112. 1 COPY "\Params\param3" TO "\GEMAPPS\SBRO\DEMO\sb.par"
  1113.  
  1114.   LOAD SET
  1115. Copies the file "param3" to the current directory and changes its name to
  1116. "sb.par". Then loads the file.
  1117.  
  1118. OPEN FIELDS
  1119. Purpose
  1120. Specifies which fields are displayed.
  1121.  
  1122. Syntax
  1123. OPEN FIELDS [FILEsbfname] [fieldlist] / [ADDfieldlist]
  1124.  
  1125. COMMENTS
  1126. This command is the program equivalent of the Open Fields option on the
  1127. Project Menu.
  1128.  
  1129. When used on its own or with the FILE parameter, OPEN FIELD loads the
  1130. file's field list from disk - the field list for the current file is saved
  1131. using the Save File option (i.e., it is stored with the file definition).
  1132. The field list does not take effect until the current record is
  1133. redisplayed.
  1134.  
  1135. To specify under program control which fields are to be open, use the
  1136. fieldlist parameter. It should consist of a list of field names separated
  1137. by commas. Use the ADD parameter to add other fields to the existing set.
  1138.  
  1139. To remove any restrictions on which fields are shown, use the CLOSE FIELDS
  1140. command.
  1141.  
  1142. EXAMPLES
  1143.  
  1144. 1 OPEN FIELDS FILE "Address" Firstname, Lastname, Country, City
  1145. 2 OPEN FIELDS: VIEW
  1146. 3 OPEN FIELDS ADD Code
  1147.  
  1148.                 S-26
  1149.  
  1150. REQUEST
  1151. Purpose
  1152. Displays a Superbase dialog.
  1153.  
  1154. SYNTAX
  1155. REQUEST text1, text2, type [nvar[strvar[len]]]
  1156.  
  1157. COMMENT
  1158. REQUEST allows you to select one of Superbase's dialogs and display it on
  1159. screen. To some extent you can also customize a dialog to your own
  1160. requirements. Thus you can place a title in box, and you can specify the
  1161. text string that initially appears in the dialog's command line or
  1162. selection box. For certain dialogs, it is also possible to specify the
  1163. length of the box. text1 and text2 are the first and second line of the
  1164. dialog title. They must be included although they can be "". The maximum
  1165. length for each line is 50 characters.
  1166.  
  1167. type is the dialog type. It defines the type of dialog according to the
  1168. table shown below.
  1169.  
  1170. nvar is a numeric variable. It returns a value of 1 if OK is selected and
  1171. there is an entry into the string dialog. If CANCEL is selected or there is
  1172. no entry into the string dialog, it return 0.
  1173.  
  1174. strvar can be used with dialogs which have a string entry box and has two
  1175. functions:
  1176.  
  1177. It is used to place a default value into the string box, i.e., the text
  1178. string in strvar is entered into the string box when the dialog is
  1179. displayed. It returns the string which the user enters in the box.
  1180.  
  1181. len specifies the length of the string box (where appropriate). This is
  1182. particularly useful for the information dialogs. For dialog type 5 to 16 it
  1183. is not needed as Superbase sets the box to the maximum file name length of
  1184. 50 characters. For dialog type 4 len must be specified.
  1185.  
  1186.                 S-27
  1187.  
  1188. Types of Dialogs available:
  1189.  
  1190. TYPE    DIALOG            BUTTONS
  1191. 0    string            OK
  1192. 1    string            OK CANCEL
  1193. 2    string            OK
  1194. 3    string            OK CANCEL
  1195. 4    string            OK CLEAR CANCEL
  1196. 5    Current file fields    OK CLEAR CANCEL
  1197. 6    Open Fields list    OK CLEAR CANCEL
  1198. 7    Indexed fields        OK CLEAR CANCEL
  1199. 8    Non indexed fields    OK CLEAR CANCEL
  1200. 9    Field Info        OK CLEAR CANCEL
  1201. 10    Open Database Files    OK CLEAR CANCEL
  1202. 11    Database Files        OK CLEAR CANCEL
  1203. 12    Program Files        OK CLEAR CANCEL
  1204. 13    Text Files        OK CLEAR CANCEL
  1205. 14    Query Files        OK CLEAR CANCEL
  1206. 15    Update Files        OK CLEAR CANCEL
  1207. 16    Function Key Files    OK CLEAR CANCEL
  1208. 17    Directory Listing    OK CLEAR CANCEL
  1209. 18    Subdirectory Listing    OK CLEAR CANCEL
  1210. 19    Form Files        OK CLEAR CANCEL
  1211. 20    Record Selection    OK CLEAR CANCEL
  1212. 21    Same as dialog 1 but accepts Return key for OK
  1213. 22    Same as dialog 2 but accepts Return key for Cancel
  1214. 23    Same as dialog 4 but does not echo keyboard input
  1215.  
  1216. Note that a database file must be open before dialogs 5 to 9 can be
  1217. selected.
  1218.  
  1219. Dialog type 20 has a different syntax to the other types:
  1220. REQUEST text1, text2, type, nvar, field1/var, len, field2, [field3[field4]]
  1221. The first two parameters have the same function as with other dialog types:
  1222. they give the first and second lines of the dialog title.type can be any
  1223. numeric expression with a value of 20.nvar is a numeric variable which
  1224. returns 1 if OK is clicked, 0 for Cancel.
  1225.  
  1226. The next parameter - field1/var - may be a field or a variable. If a field,
  1227. it will usually be the name of a field in the current file but it can also
  1228. be a field in another open file. Whatever is entered in the dialog is
  1229. stored in the field or variable. The fields specified with field parameters
  1230. 2 to 4 can also belong to any open file but it must be the same file.len
  1231. specifies the width of the dialog in number of characters.
  1232.  
  1233.                 S-28
  1234.  
  1235. When you execute this command, it list the contents of field2 for each
  1236. record in the file. If field3 and field4 are specified, the contents of
  1237. these fields will also be displayed in the dialog to the right of field2.
  1238.  
  1239. Superbase retrieves the field2 data using the current value of field1 or
  1240. var as an index key or a 'seed'. Provided field2 is an indexed field, the
  1241. list of fields in the dialog will start with the field before the one that
  1242. matches this key. If it is not indexed, the field data is listed in the
  1243. order of the current index.
  1244.  
  1245. When you select one of the field2 values from the dialog and click on OK, 
  1246. Superbase stores it in the field or variable specified with the field1 /var
  1247. parameter.
  1248.  
  1249. EXAMPLES
  1250. 1 REQUEST "", "", 2, a%
  1251. 2 a%=0: a$="": REM initialize nvar and strvar
  1252.   REQUEST "Select a program", "", 5, a%, a$, 32
  1253.   IF a%=0 then ? "OK so you do not want to run a program": END
  1254.   CHAIN a$
  1255. 3 REQUEST "Select a customer code", "", 20, a%, Cuscode.Invhdr, 40, 
  1256.   Cuscode.Customer, Firstname.Customer, Lastname.Customer.
  1257.  
  1258. NOTES
  1259. Example 1 puts an OK dialog up for 2 seconds. Example 2 allows the user to
  1260. select a program to run. Example 3 illustrates the use of dialog type 20.
  1261. Taking data from the Customer file, the dialog lists the names and customer
  1262. codes of the individuals in the file. When the user selects a customer code
  1263. from the dialog, it is stored in the Cuscode field in current record from
  1264. the Invhdr file.
  1265.  
  1266.                 S-29
  1267.  
  1268. SELECT FORM ROW
  1269. Purpose
  1270. Selects the current transaction row.
  1271.  
  1272. SYNTAX
  1273. SELECT FORM ROW nexpr
  1274.  
  1275. COMMENTS
  1276. This command is used with transaction forms to select one from a number of
  1277. transaction lines. Transaction data on the form is held independently of
  1278. record data. Consequently, it is necessary to select the transaction you
  1279. wish to deal with in order to ensure that the record data reflects the
  1280. transaction data. Once you have identified a transaction with SELECT FORM
  1281. ROW, any reference to a field involved in transactions will refer to the
  1282. instance of that field in that transaction. See UPDATE FORM, ENTER, FORM.
  1283.  
  1284. Note that in selecting a transaction you also select the record which holds
  1285. the data for the fields in the transaction; in other words, you make it the
  1286. current record.
  1287.  
  1288. EXAMPLES
  1289.  
  1290. 1 x%=COUNT quantity.invline
  1291.   FOR n%-1 to x%
  1292.   SELECT FORM ROW n%
  1293.   ? quantity.invline
  1294.   NEXT
  1295.  
  1296. NOTES
  1297. The example displays all the quantity entries in the current form.
  1298.  
  1299.                 S-30
  1300.  
  1301. SET EDIT
  1302. Purpose
  1303. Sets auto-entry to the Program Editor on or off.
  1304.  
  1305. SYNTAX
  1306. SET EDIT ON/OFF
  1307.  
  1308. COMMENTS
  1309. Normally when a program is interrupted - when CTRL C or the Stop button has
  1310. been clicked, or when an error has occurred - Superbase opens the Program
  1311. Editor window and makes the cursor active. SET EDIT OFF switches this
  1312. feature off; if the window has been closed beforehand, it will remain
  1313. closed when the program is stopped.
  1314.  
  1315. SET HEADING 
  1316. Purpose
  1317. Sets the title for the Superbase window.
  1318.  
  1319. SYNTAX
  1320. SET HEADING strexpr
  1321.  
  1322. COMMENTS
  1323. The title bar for the Superbase window normally shows the name of the
  1324. current open file. SET HEADING allows you to replace this with your own
  1325. heading. To restore the original heading, use SET HEADING "".
  1326.  
  1327. EXAMPLES
  1328.  
  1329. 1 SET HEADING "Invoice Form"
  1330. 2 SET HEADING ""
  1331.  
  1332.                 S-31
  1333.  
  1334. SET NOW
  1335. Purpose
  1336. Sets the time held in the system variable NOW.
  1337.  
  1338. SYNTAX
  1339. SET NOW strexpr
  1340.  
  1341. COMMENTS
  1342. strexpr must contain a time in the current time format as set with Date
  1343. format in the Set menu or with the DATABASE command.
  1344.  
  1345. EXAMPLES
  1346.  
  1347. 1 SET NOW "14:35:08"
  1348. 2 DATABASE "hh:mm:ss.s"
  1349.   SET NOW "23:59:59.9"
  1350.  
  1351. SET TODAY
  1352. Purpose
  1353. Sets the date held in the system variable TODAY.
  1354.  
  1355. SYNTAX
  1356. SET TODAY strexpr
  1357.  
  1358. COMMENTS
  1359. strexpr must contain a date in the current date format as set with DATABASE
  1360. or with Date format in the Options menu.
  1361.  
  1362. EXAMPLES
  1363.  
  1364. 1 SET TODAY "15May1988"
  1365. 2 DATABASE "mm-dd-yy"
  1366.   SET TODAY "12-31-87"
  1367.  
  1368.                 S-32
  1369.  
  1370. UPDATE FORM ROW
  1371. Purpose
  1372. Copies data from the current record or records to a specified transaction
  1373. line.
  1374.  
  1375. SYNTAX
  1376. UPDATE FORM ROW nexpr
  1377.  
  1378. COMMENTS
  1379. This command is only used transaction forms. It updates the fields in the
  1380. transaction line specified with nexpr taking the data from the current
  1381. record. To redisplay use the FORM command.
  1382.  
  1383. See SELECT FORM, ENTER, FORM.
  1384.  
  1385. EXAMPLES
  1386.  
  1387. 1 BLANK FORM
  1388.   SELECT FIRST
  1389.   FOR n%=1 TO 10
  1390.   UPDATE FORM ROW A n%
  1391.   SELECT NEXT
  1392.   NEXT
  1393.   FORM
  1394.  
  1395. NOTES
  1396. The example program fills the first ten lines in the transaction form with
  1397. data from the first ten records in the current file - it assumes that the
  1398. fields in the file are the same as those on the form.
  1399.  
  1400.                 S-33
  1401.  
  1402. COMMS UNDER PROGRAM CONTROL
  1403. DML provides seven commands for handling communications under program
  1404. control. The first five can be used for transmitting and receiving text
  1405. strings rather than entire files. To see how these commands allow you to
  1406. communicate with another Superbase user in 'chat' mode, you are recommended
  1407. to look at the Comms program supplied on the demonstration data disk.
  1408.  
  1409. The last two comms commands are the program equivalents of the Comms menu
  1410. option and used for file transfer under the XMODEM protocol.
  1411.  
  1412. 1. OPEN COMMS [USING parameters]
  1413. This command opens the communications channel must be executed before
  1414. attempting file or text transfer. USING can take up to eight parameters,
  1415. each separated by a comma. The parameters correspond to the ones in comms
  1416. dialog, as follows:
  1417.  
  1418.     param1: Port number (either 0 or 1)
  1419.     param2: Baud Rate (9600/2400/1200/300)
  1420.     param3: Parity (0/1/2)
  1421.     param4: Stop Bit (either 1 or 2)
  1422.     param5: Word Length (5/6/7/8)
  1423.     param6: Transmit/Receive (1 for Transmit, 0 for Receive)
  1424.     param7: File Header (0 for Off, 1 for On)
  1425.     param8:Autodial Number
  1426.  
  1427. The Autodial number must be supplied as a text string; the other parameters
  1428. must be numeric values.
  1429.  
  1430. If you do not supply these parameters, Superbase uses the values currently
  1431. shown in the comms dialog. These default values are stored in the sb.par
  1432. file when you click on OK in the dialog.
  1433.  
  1434. An example of the use of the OPEN COMMS command would be:
  1435.  
  1436.     OPEN COMMS USING 1, 1200, 0, 1, 8, 1, 1, "0932751594"
  1437.  
  1438. Here the command opens a channel for remote transmission to a modem on the
  1439. telephone number 0932 751594
  1440.  
  1441. 2. CLOSE COMMS
  1442.  
  1443. This closes the communications channel and should be executed at the end of
  1444. any operation involving data transfer.
  1445.  
  1446.                 S-34
  1447.  
  1448. 3.COMMS[TEXT]GET stringvar
  1449. This works in a similar way to GET when it is used as a keyboard input
  1450. command. Instead of reading a character from the keyboard, COMMS GET reads
  1451. a character from the comms buffer and stores it in the string variable
  1452. specified. If the buffer is empty it returns a null character. As with GET,
  1453. it doesn't wait for a character to be transmitted, and when the buffer is
  1454. empty it returns a null character. If you want COMMS GET to wait for
  1455. transmission, you need to place it in a loop, as in:
  1456.  
  1457.     lab1: COMMS GET a$: IF a$="" THEN GOTO lab1
  1458.  
  1459. The TEXT parameter limits the range of characters that are returned to
  1460. those with ASCII codes less than 128. Characters whose codes are greater
  1461. than 127 are converted to this range (i.e., Superbase strips off the
  1462. highest bit); for example,  ASCII character 180 would be returned as
  1463. character 52.
  1464.  
  1465. 4. COMMS[TEXT]INPUT stringvar
  1466. This command reads up to 255 characters at a time from the comms buffer
  1467. into the string variable specified. If it finds a line feed character
  1468. (ASCII 10) it only takes the characters up to and including the line feed.
  1469. Otherwise, within the limit of 255, it returns as many characters as there
  1470. are in the buffer. The optional TEXT parameters operates in the same way as
  1471. it does with COMMS GET. It maps characters over 127 onto their ASCII
  1472. equivalents in the range 0 to 127.
  1473.  
  1474. 5. COMMS ? strexpr
  1475. This outputs the characters in the string expression (either a string
  1476. variable or a text string enclosed in quotation marks) through the comms
  1477. channel. For example:
  1478.  
  1479.     COMMS ? "Hello"
  1480.  
  1481. sends the word Hello to the computer at the receiving end.
  1482.  
  1483. 6. COMMS FILE GET strexpr
  1484. Use this command to receive a file under program control. The string
  1485. expression should specify the name under which the file is to be saved.
  1486. However, if the File Header option is On, it will be saved using the name
  1487. under which it was transmitted; so you do not need to supply the file name
  1488. and can just give the empty string. For example:
  1489.  
  1490.     OPEN COMMS 9.9600, 0, 1, 8, 0, 1
  1491.     COMMS FILE GET ""
  1492.     CLOSE COMMS
  1493.  
  1494.                 S-35
  1495.  
  1496. 7. COMMS FILE[?]strexpr
  1497. This command is the program equivalent of transmitting a file using the
  1498. Comms menu option. The string expression should specify the file or files
  1499. that are to be transmitted. For example, to transmit the Address database
  1500. files, you could enter:
  1501.  
  1502.     a$="Address"
  1503.     COMMS FILE ? a$ + ".*"
  1504.  
  1505. REPORT FUNCTIONS
  1506. These functions can only be used with repeated fields occurring in reports
  1507. and transactions (a group of repeated fields in a form), and array
  1508. variables. When a report or a form displays multiple instances of the same
  1509. type of data - for example, the deposits made to a bank in a single month -
  1510. you will usually want to derive totals from the data or to analyze it in
  1511. certain ways. Report functions allow you to do this with a single command.
  1512. Within a program you can use them to total or analyze a range of values
  1513. which have previously been assigned to an array.
  1514.  
  1515. The report functions are:
  1516.  
  1517. SUM
  1518. COUNT
  1519. MIN
  1520. MAX
  1521. MEAN
  1522. VAR
  1523. SD
  1524.  
  1525. Apart from COUNT, which returns the number of instances of the same field
  1526. or the number of array elements, these functions only operate on numeric
  1527. values: the function's argument must be a numeric field or a numeric array.
  1528.  
  1529. There is an important difference between the way the report functions work
  1530. with arrays and with the fields in a transaction form. With arrays, they
  1531. act on all the elements whether they have been assigned a value or not. But
  1532. with transaction forms they only operate on the lines which contain data;
  1533. i.e., COUNT shows the number of transaction lines that are filled and
  1534. ignores blank lines.
  1535.  
  1536.                 S-36
  1537.  
  1538. Parentheses are optional with report functions. To show the total of all
  1539. the occurrences in a transaction form of the field Amoung, you could enter:
  1540.  
  1541.     ? SUM Amount
  1542. or
  1543.     ? SUM (Amount)
  1544.  
  1545. With array variables, you enter the array name of its, own, as in:
  1546.  
  1547.     ? MEAN a%
  1548.  
  1549. If the array has more than one dimension, the function operates on the
  1550. first dimension.
  1551.  
  1552. COUNT
  1553. Purpose
  1554. Returns the number of repeated fields in a report or transaction form. Also
  1555. returns the number of elements in an array.
  1556.  
  1557. SYNTAX
  1558. COUNT (fieldname/array)
  1559.  
  1560. COMMENTS
  1561. As a report function, COUNT can only be used with repeated instances of a
  1562. field or a variable such as occur in reports and transactions or in an
  1563. array. Unlike the other report functions, COUNT works with string, date and
  1564. time fields as well as numeric fields.
  1565.  
  1566. When a calculation variable is replicated as part of a transaction line, it
  1567. is converted into an array. Unlike the other report functions, COUNT works
  1568. with string, date and time fields as well as numeric fields.
  1569.  
  1570. When a calculation variable is replicated as part of a transaction line, it
  1571. is converted into an array variable. In most cases COUNT will be used with
  1572. these types of variables - the arrays that occur in a transaction form
  1573. rather than normal program arrays. If you supply a program array with more
  1574. than one dimension as an argument, COUNT operates on the first dimension.
  1575.  
  1576. When it used to count the fields in a block of transactions, COUNT only
  1577. operates on the lines that contain data. With arrays, however, it gives the
  1578. total number of elements irrespective of whether they have been assigned a
  1579. value.
  1580.  
  1581.                 S-37
  1582.  
  1583. EXAMPLES
  1584.  
  1585. 1 x%=COUNT trans%
  1586. 2 IF COUNT Lastname.Address > 20 THEN...
  1587.  
  1588. MAX
  1589. Purpose
  1590. Returns the maximum value from a range of values.
  1591.  
  1592. SYNTAX
  1593. MAX (fieldname/numarray)
  1594.  
  1595. COMMENTS
  1596. fieldname must be the name of a numeric field which is repeated in a report
  1597. or in a transaction form.numarray much be a numeric array which has been
  1598. defined in a program or as calculation variable in a transaction line. The
  1599. parentheses are optional. See COUNT.
  1600.  
  1601. EXAMPLES
  1602.  
  1603. 1 ? MAX range%
  1604. 2 a%=MAX Score.Results
  1605.  
  1606. MEAN
  1607. Purpose
  1608. Returns the average from a range of numeric values.
  1609.  
  1610. SYNTAX
  1611. MEAN (fieldname/numarray)
  1612.  
  1613. COMMENTS
  1614. fieldname must be the name of a numeric field which is repeated in a report
  1615. or a transaction form.numarray must be a numeric array which has been
  1616. defined in a program or as a calculation variable in a transaction line.
  1617. The parentheses are optional.
  1618.  
  1619.                 S-38
  1620.  
  1621. EXAMPLES
  1622.  
  1623. 1 a%=MEAN age
  1624. 2 DIM m%(10)
  1625.   FOR n%=0 to 10
  1626.   m%(n%)=n%
  1627.   NEXT
  1628.   ? MEAN m%
  1629.  
  1630. MIN
  1631. Purpose
  1632. Returns the minimum value from a range of numeric values.
  1633.  
  1634. SYNTAX
  1635. MIN (fieldname/numarray)
  1636.  
  1637. COMMENTS
  1638. fieldname must be the name of a numeric field which is repeated in a report
  1639. or in a transaction form.numarray must be a numeric array which has been
  1640. defined in a program or as calculation variable in a transaction line. The
  1641. parentheses are optional. See COUNT.
  1642.  
  1643. EXAMPLES
  1644.  
  1645. 1 IF MIN range% < 15 THEN...
  1646. 2 min%=MIN Score.Results
  1647.  
  1648.                 S-39
  1649.  
  1650. SD
  1651. Purpose
  1652. Returns the standard deviation for a range of values.
  1653.  
  1654. SYNTAX
  1655. SD (fieldname/numarray)
  1656. This function provides a measure of the spread of a range of numeric values
  1657. from its mean. It only operates with repeated instances of a numeric field
  1658. or numeric variable such as occur in reports and transaction forms. It can
  1659. also be used with numeric arrays that are defined within a program. See
  1660. COUNT.
  1661.  
  1662. EXAMPLES
  1663.  
  1664. 1 ?SD(n%)
  1665. 2 Deviance%=SD Scores.Results
  1666.  
  1667. SUM
  1668. Purpose
  1669. Returns the total for a range of values.
  1670.  
  1671. SYNTAX
  1672. SUM (fieldname/numarray)
  1673.  
  1674. COMMENTS
  1675. This function can only be used with numeric fields in reports and
  1676. transaction forms, and with numeric arrays defined in programs or
  1677. transactions. See COUNT.
  1678.  
  1679. EXAMPLES
  1680.  
  1681. 1 ? SUM Line_Value
  1682. 2 IF SUM tot% 250 THEN...
  1683.  
  1684. NOTES
  1685. The parentheses are optional.
  1686.  
  1687.                 S-40
  1688.  
  1689. VAR
  1690. Purpose
  1691. Returns the variance from the mean of a range of values.
  1692.  
  1693. SYNTAX
  1694. VAR (fieldname/numarray)
  1695.  
  1696. COMMENTS
  1697. fieldname must be a numeric field whose data is repeated in a report or a
  1698. field in a transaction line.numarray can be a numeric calculation variable
  1699. that occurs in a transaction line or a numeric array in a program. The
  1700. parentheses are optional.
  1701.  
  1702. EXAMPLES
  1703.  
  1704. 1 IF VAR Score.Results > v% THEN...
  1705. 2 x%=VAR scores%
  1706.  
  1707.                 S-41
  1708.  
  1709. 3. FORMS EDITOR
  1710. The Forms Editor has been substantially enhanced for this version of
  1711. Superbase and some of the sections in the Forms Editor User Guide and are
  1712. incorrect. In addition, there are a number of new menu options and new
  1713. attributes which are not covered in the User Guide.
  1714.  
  1715. The new menu options are: Status, Directory Change and Directory List on
  1716. the Project menu; and Field names on the Edit menu.
  1717.  
  1718. In the Attributes window, the Pen selector and the Pen and Paper selector
  1719. have been replaced by a single selector, and there are three new selectors
  1720. for Border, Border Colour, and Currency Format.
  1721.  
  1722. STATUS
  1723. The Status option on the Project menu provides two types of information.
  1724. First it gives information about various aspects of the system. Then if
  1725. there is a form in memory, it displays the details of the form's fields and
  1726. calculation. When you select Status, a dialog appears giving you the choice
  1727. of outputting to the printer or the screen. Click on OK for the printer,
  1728. Cancel for the screen. At the top of the screen, Status shows the following
  1729. details:
  1730.  
  1731. The Superbase files that have been opened
  1732. The current directory
  1733. The number of pages in the current form
  1734. The amount of space remaining on the current disk
  1735. The amount of free memory
  1736.  
  1737. Below this (if there is a form in memory) Status gives the details of the
  1738. form's field and calculation objects. For each object it shows the type
  1739. (either FLD for field or CLS for calculation), the name, and the object's
  1740. attributes. The attributes are listed in four columns. From left to right,
  1741. they are:
  1742.  
  1743. ORDER.
  1744. The object's order entry number.
  1745.  
  1746. JUSTIFICATION
  1747. This can be L, C, or R for left, centre and right justification.
  1748.  
  1749.                 S-42
  1750.  
  1751. READ ONLY.
  1752. If the object has been given the read only attribute, it is indicated by
  1753. the letter R. Otherwise this column is left blank.
  1754.  
  1755. PRINT STATUS.
  1756. If the object's print status is 'on', it is indicated by the letter P.
  1757.  
  1758. If a calculation has a formula attached to it, this is shown in the line
  1759. below.
  1760.  
  1761. LISTING THE DIRECTORY
  1762. The Dir List option lists all the files in the current directory. When you
  1763. select it from the menu, a dialog appears giving you the choice of
  1764. outputting the directory list to the printer or to the screen. For a screen
  1765. display of the directory, click on the Cancel button.
  1766.  
  1767. CHANGING THE DIRECTORY
  1768. Within the Forms Editor you can change the current directory and the
  1769. current drive using the Dir Change option on the Project menu. Directory
  1770. displays a dialog which lists all the directories below the current level;
  1771. i.e. if you are already at the bottom of the directory tree, the dialog
  1772. will be empty.
  1773.  
  1774. You can select a directory from the list in the usual way by clicking on OK
  1775. or double clicking. Selecting '..' (on the Amiga, type '\') takes you to
  1776. the next level up the directory tree.
  1777.  
  1778. If you want to change to a directory in another branch of the tree, you
  1779. will need to type in its name and pathname. For example, if you had a
  1780. directory called images, which was a subdirectory of sbforms, typing
  1781.  
  1782.     \sbforms\images
  1783.     /sbforms/images
  1784.  
  1785. would make Images the current directory.
  1786.  
  1787. To change to another drive, type in the drive name - a:, b:, c:, or d:.
  1788. (DF0:, DF1:,  DH0: or DJ0:)
  1789.  
  1790. After typing in a directory name or a drive name, click on OK or press
  1791. Return.
  1792.  
  1793.                 S-43
  1794.  
  1795. FIELD OPTIONS
  1796. There are two options governing the way a field is added to a page: Field
  1797. names on the Edit menu and Field borders which is available from the
  1798. Attributes window.
  1799.  
  1800. If you set the Field names option, the name of the field is added to the
  1801. page as a text object in the standard system font. It is placed at the left
  1802. of the field box at the same time as the field is added to the page.
  1803.  
  1804. Field borders are treated as an attribute of a field and are represented in
  1805. the Attributes window by the picture frame symbol (see next section). If
  1806. this attribute is set, the Forms Editor draws the border of the field box
  1807. with a solid line. By default, this attribute is not set, and the field box
  1808. is drawn with a dotted line. If you print a form or load a form from within
  1809. Superbase,  the field will be shown with its border; the dotted lines
  1810. around a field box only appear in the Forms Editor itself.
  1811.  
  1812. Like the other attributes, Field borders can be altered at any time - you
  1813. can assign a border or remove it from a field by selecting the field and
  1814. then clicking in picture frame symbol.
  1815.  
  1816. ATTRIBUTES
  1817. COLOUR MODES
  1818. In the current version of the Forms Editor, the Pen selector and the Pen
  1819. and Paper selector in the Attributes window have been merged. There is now
  1820. just one box to control both colour modes. By default, the Pen colour mode
  1821. is selected; when you highlight the box, Pen and Paper is selected.
  1822.  
  1823. CURRENCY FORMAT
  1824. Another new feature in the Attributes window is the currency format
  1825. selector,  represented by the dollar sign. Assigning this attribute to
  1826. numeric calculations ensures that they take the following format when their
  1827. results are displayed in Superbase: numbers are right aligned and expressed
  1828. to two decimals places; any leading zeros are removed.
  1829.  
  1830.                 S-44
  1831.  
  1832. BORDER
  1833. This attribute is represented by the picture frame icon. When it is set,
  1834. areas and fields are drawn with a border. With areas, the border can be
  1835. treated as a box. Although you can't detach it from the area, you can set
  1836. its thickness and pattern in the same way as for boxes and lines. Field
  1837. borders are always drawn with a thin solid line and cannot be altered.
  1838.  
  1839. BORDER COLOUR
  1840. The box to the right of the picture frame icon controls the colour of a
  1841. border. To set the colour, first click in this box, then click in one of
  1842. the boxes in the colour panel.
  1843.  
  1844. You can set the border colour for both areas and fields.
  1845.  
  1846. SELECTING MULTIPLE OBJECTS
  1847. There are two ways of selecting a group of objects. With the first, you
  1848. hold the Shift key down and click once on each object in turn. Click on an
  1849. object again to deselect it from the group.
  1850.  
  1851. The second way involves drawing a box around the objects that are to be
  1852. selected. Start by pressing the Ctrl key, the click in an empty space just
  1853. above and to the left of the group. Now drag the dotted outline of a box so
  1854. that it encloses the group. Click once to select all the objects in the
  1855. box.
  1856.  
  1857. In order to deselect an object or a group of objects double click on part
  1858. of the page that is not occupied by any object.
  1859.  
  1860.                 S-45
  1861.  
  1862. PRINTING FORMS
  1863. COPIES
  1864. This allows you to print up to 99 copies of a form. Click in the Copies box
  1865. to activate the cursor and enter the number of copies required.
  1866.  
  1867. FIELD NAMES
  1868. This option determines whether the field names on a form are printed or
  1869. not. If you turn the Field name button off - by clicking in it - the Field
  1870. character box will become active. Use this to specify the character that
  1871. will be printed in the field boxes in place of the field names. Initially,
  1872. the character shown is the letter X. To specify another character (the
  1873. space character, for example) click in the box to activate its cursor,
  1874. delete the letter X, and enter the character required.
  1875.  
  1876. GENERATING REPORTS
  1877. FORMATTING REPORT OUTPUT
  1878. Calculations are especially useful for formatting text and numbers in the
  1879. report output. Thus to format a numeric field, you can use the function
  1880. STR$. The field should be included in a calculation formula instead of
  1881. being added to the form as a separate object. For example, the calculation
  1882. Balance$ could be used to format the numeric field Balance, using a formula
  1883. like this:
  1884.  
  1885.     STR$(Balance, "$999999.99")
  1886.  
  1887. Another example, which shows how text can be formatted, would be a formula
  1888. such as:
  1889.  
  1890.     Firstname + " " + Lastname
  1891.  
  1892. Here the formula ensures that first and last names are correctly spaced in
  1893. the report output.
  1894.  
  1895. PAGE NUMBER
  1896. You can enter page numbers on the report using the system variable PG. When
  1897. you print the report, Superbase assigns a value of one to this variable and
  1898. then updates it by one every time a page is printed.
  1899.  
  1900. Typically, PG would be entered in a calculation formula, and the
  1901. calculation would be placed in the Heading box. For example, the formula
  1902. could be:
  1903.  
  1904.     RIGHT$(STR$(PG, 2))
  1905.  
  1906.                 S-46
  1907.  
  1908. TRANSACTION HANDLING
  1909. The simplest way of describing transactions is as a set of repeated fields
  1910. in a form. Transactions allow the user to display data from multiple
  1911. records in the same file and at the same time. Typically, each transaction
  1912. would be a row of data drawn from several fields in a single record.
  1913.  
  1914. The other key feature of transactions is that each set must be linked to a
  1915. single record in another file. A form which is designed to process
  1916. transactions - referred to here as a transaction form - must be based on at
  1917. least two files,  with one acting as the master file. The relation between
  1918. a record in the master file and the records in a set of transactions is
  1919. always 'one to many'.
  1920.  
  1921. A TRANSACTION FORM EXAMPLE
  1922. Let's consider an example of a database application for cataloging a book
  1923. collection. It uses two files, Authors and Titles. The Authors file stores
  1924. the name and other details of all the authors represented in the
  1925. collection, using one record for each author. The records in the Titles
  1926. file store the details of each book, such as its title, subject matter, and
  1927. publisher. In addition, the records in both files contain an alphanumeric
  1928. code (the author code) which links the books to their authors.
  1929.  
  1930. This way of organizing the data is far more flexible than a system which
  1931. uses a single file to catalogue the books. It makes it easy to design a
  1932. form which displays the authors and a list of their books on screen at the
  1933. same time. The data would be structured as follows:
  1934.  
  1935.     Author's name, Author code
  1936.         Title, Subject, Publisher
  1937.         Title, Subject, Publisher
  1938.         Title, Subject, Publisher
  1939.  
  1940. If you clicked on the next record button, Superbase would read in the next
  1941. author in alphabetical order followed by a variable number of lines, one
  1942. for each of the author's books. The fields from a record in the Titles file
  1943. are treated as a single transaction; a set of transactions represents all
  1944. the books written by a particular author.
  1945.  
  1946. There is an important point to made about this example which applies to
  1947. transactions in general. All the records in a set of transactions have one
  1948. thing in common: the author's code number. Although it is not part of the
  1949. transaction line, it is this field that defines a number of records as a
  1950. set of transactions and links them to the record in the Author file.
  1951.  
  1952.                 S-47
  1953.  
  1954. Provided a transaction form establishes this link, it is also possible to
  1955. include fields from other files in the transaction line; in this example,
  1956. each transaction line could show the publisher's address by looking it up
  1957. in an address file.
  1958.  
  1959. SETTING UP A TRANSACTION FORM
  1960. When you are creating a transaction form, Replicate is the option you use
  1961. to define a number of fields and calculations as a set of transactions. As
  1962. a prerequisite, you need to select these elements of a transaction as a
  1963. multiple group. Then select Replicate from the Edit menu.
  1964.  
  1965. The Forms Editor displays the Replicate dialog. You will see four input
  1966. boxes and below them two buttons. In the boxes, you should enter numeric
  1967. values for the following features:
  1968.  
  1969. Transaction lines
  1970. Line spacing
  1971. Transaction columns
  1972. Column spacing
  1973.  
  1974. The number of transaction lines specifies how many times the selected group
  1975. of fields and calculations will be replicated down the page; i.e., the
  1976. number of transactions that will appear on the form.
  1977.  
  1978. Line spacing determines the number of empty lines between transactions down
  1979. the page. Enter a value of 0, if you wish the transactions to be placed one
  1980. on top of the other.
  1981.  
  1982. The transaction columns box allows you to specify whether the transactions
  1983. are to be arranged in a single column or across the screen in two or more
  1984. columns. The total number of transactions on the form will the number in
  1985. this box times the number in the transaction lines box. If you want the
  1986. form to have just one column of transactions, enter a value of 1.
  1987.  
  1988. Column spacing only needs to be specified if you are using more than one
  1989. transaction column. The number in this box determines how many spaces will
  1990. be placed between each transaction across the page when there are more than
  1991. one to a line.
  1992.  
  1993. DOWN/ACROSS. These buttons determine the entry order for transactions. If
  1994. the form has only one column of transactions, they will automatically be
  1995. numbered from top to bottom. With multiple columns, you have the option of
  1996. setting the entry order from top to bottom (DOWN) or left to right
  1997. (ACROSS).
  1998.  
  1999.                 S-48
  2000.  
  2001. Suppose, for example, the form has 8 transactions which are arranged like
  2002. this:
  2003.  
  2004.     Trans                Trans
  2005.     Trans                Trans
  2006.     Trans                Trans
  2007.     Trans                Trans
  2008.  
  2009. If you click on the DOWN button, the entry order will be:
  2010.  
  2011.     1                5
  2012.     2                6
  2013.     3                7
  2014.     4                8
  2015.  
  2016. Clicking on the ACROSS button would ensure the entry order was as follows:
  2017.  
  2018.     1                2
  2019.     3                4
  2020.     5                6
  2021.     7                8
  2022.  
  2023. Note that this option only determines the entry order for the transaction
  2024. line as a whole. It doesn't affect the order of the fields within a
  2025. transaction (see the next section).
  2026.  
  2027. CALCULATIONS
  2028. A transaction line may also contain form calculations. These must be tied
  2029. to the fields in the line; in other words, the calculation formulas must
  2030. include a reference to one or more transaction fields.
  2031.  
  2032. Calculations are replicated at the same time as the fields. You simply
  2033. select them as part of the multiple group.
  2034.  
  2035. The Forms Editor turns repeated calculations into an array. Remember that a
  2036. form calculation can be treated as a program variable. When you replicate a
  2037. calculation it becomes an array variable; for example, replicating the
  2038. calculation tot% five times creates an array with five elements, tot%(0)to
  2039. tot%(4).
  2040.  
  2041. NOTE: IF THE CALCULATION SENDS ITS RESULT TO A FIELD, THE FIELD MUST BE ONE
  2042. THAT OCCURS IN THE TRANSACTION LINE. IT SHOULD NOT POST DATA TO FIELDS IN
  2043. OTHER FILES.
  2044.  
  2045.                 S-49
  2046.  
  2047. SETTING LINKS
  2048. For a transaction form to work, you must establish a link between a field
  2049. in the master file and a field in the transaction line using the Link
  2050. option on Set menu. Thereafter, you can set other links, but these must
  2051. always be between fields in a 'one to one' relation. In other words, you
  2052. cannot set up forms where a transaction has further transactions of its
  2053. own.
  2054.  
  2055. COPYING FIELDS AND CALCULATIONS
  2056. Transactions are created by repeating fields (and calculations) with the
  2057. Replicate option. If you repeat a field using some other technique - by
  2058. copying it or by adding it to the page a second time - it will only show
  2059. the data for the current record and the current transaction line.
  2060.  
  2061. Usually, this field would be marked as Read Only and would be used to
  2062. display a full description of data which is truncated in the transaction
  2063. line.
  2064.  
  2065. USING REPORT FUNCTIONS
  2066. The report functions can be applied to the fields and calculations that
  2067. occur in transactions. They are used in formulas which are attached to
  2068. calculations outside the transaction block. An example, would be the
  2069. formula:
  2070.  
  2071.     SUM Annual_interest
  2072.  
  2073. This returns the total value of the field Annual_interest in all the
  2074. transaction lines that contain data. Note that the report function do not
  2075. operate on empty transaction lines.
  2076.  
  2077. Other examples are:
  2078.  
  2079.     COUNT Stockcode
  2080.     MEAN
  2081.     MAX
  2082.     MIN
  2083.  
  2084. Apart from COUNT, the report functions can only be used with numeric fields
  2085. and calculation variables.
  2086.  
  2087. Report functions can also be used in DML programs. As well as working with
  2088. transaction items, they can be applied to the arrays which are defined
  2089. within a program. See the entries for these functions in Chapter 5, DML
  2090. User Guide.
  2091.  
  2092.                 S-50
  2093.  
  2094. PROGRAMMING TRANSACTIONS
  2095. One of the advantages of using a form to process transactions is that it
  2096. does not require any programming. However, transaction forms on their own
  2097. will only take you so far. For more complex applications, you will need to
  2098. combine the form's built-in processing facility with a program. Superbase
  2099. provides the following commands for handling transactions:
  2100.  
  2101.     SELECT FORM ROW
  2102.     UPDATE FORM ROW
  2103.     ENTER
  2104.  
  2105. When they are used with the ROW keyword, these commands give the programmer
  2106. control over input and output to the individual lines in a set of
  2107. transactions. For more details, see the entries for these commands in the
  2108. section headed DML Keywords.
  2109.  
  2110. SINGLE FILE APPLICATIONS
  2111. By definition, transactions can only be defined in a multi-file form.
  2112. However, if you replicate fields on a form which uses just one file, they
  2113. still share some of the features of transactions.
  2114.  
  2115. A form like this will display multiple records from one file in a similar
  2116. way to Superbase's form view option. But it is has the advantage of
  2117. allowing you to click on any of the lines on screen. The line then becomes
  2118. the current record. You can use this feature for two purposes: as a way of
  2119. selecting a record from a list, and as a way of entering data from multiple
  2120. records at the same time.
  2121.  
  2122. SETTING THE ENTRY ORDER FOR TRANSACTIONS
  2123. The Order option on the Set menu allows you to define the entry order for
  2124. the fields and calculations in a transaction in the same way as for
  2125. non-transactional fields. However, there are a number of restrictions that
  2126. apply when you are setting the entry order for the elements of a
  2127. transaction. The entry order sequence within a transaction is the same for
  2128. all the transactions on the form; i.e., if you specify for one transaction
  2129. that data is entered from left to right, this will also be the case for the
  2130. other transactions. This means that when you are setting the entry order,
  2131. you should concentrate only on the first transaction. Any changes you make
  2132. will then be automatically repeated in the rest of the transactions.
  2133.  
  2134.                 S-51
  2135.  
  2136. The entry order for the transactions treated as units is set in the
  2137. Replicate dialog and cannot be altered. In other words, the order numbers
  2138. of the elements in one transaction will always remain the same relative to
  2139. the elements in the other transaction.
  2140.  
  2141. If you alter the order of a transaction element with respect to other
  2142. fields on the form, all the transaction order numbers will be altered at
  2143. the same time (although they remain the same relative to each other).
  2144.  
  2145. To illustrate these points, let's consider an example involving a form with
  2146. four transactions each containing three fields. In addition to the
  2147. transactions,  there is one non-transaction field on the form above the
  2148. transaction block. The fields are arranged like this:
  2149.  
  2150.                 Field_a
  2151.     Field_b            Field_c            Field_d
  2152.     Field_b            Field_c            Field_d
  2153.     Field_b            Field_c            Field_d
  2154.     Field_b            Field_c            Field_d
  2155.  
  2156. Field_a stands on its own; the other fields are elements in the four
  2157. transaction lines. Initially, the entry order is as follows:
  2158.  
  2159.                 1
  2160.     2            3            4
  2161.     5            6            7
  2162.     8            9            10
  2163.     11            12            13
  2164.  
  2165. Suppose you wanted to change this order so that the user was required to
  2166. enter data in the second field (Field_c) in each transaction line before
  2167. the first field. To do this you would click once in Field_c on the first
  2168. transaction line, and then again on Field_b. The entry order would now be:
  2169.  
  2170.                 1
  2171.     3            2            4
  2172.     6            5            7
  2173.     9            8            10
  2174.     12            11            13
  2175.  
  2176.                 S-52
  2177.  
  2178. You might also want to ensure that data was entered in the transactions
  2179. before Field_a. In this case you would need to select the Order option
  2180. again, and then click twice on Field_c in the first transaction. The entry
  2181. order would then be:
  2182.  
  2183.                 13
  2184.     2            1            3
  2185.     5            4            6
  2186.     8            7            9
  2187.     11            10            12
  2188.  
  2189. EDITING TRANSACTION FORMS
  2190. Despite their greater complexity, transactions can be edited in the Forms
  2191. Editor in the same way as other objects on the form. Editing a transaction
  2192. line includes deleting fields, adding new fields, and redefining the
  2193. arrangement of a transaction block by selecting Replicate again.
  2194.  
  2195. Before editing a transaction, you need to select the item or items you wish
  2196. to change. This has the effect of selecting all the items of the same type
  2197. in the transaction block; i.e., selecting a filed in the first line
  2198. automatically selects the same field in the other lines.
  2199.  
  2200. To add a field, first place it on the form, select it in the usual way, and
  2201. then select Replicate. It is not necessary to select the fields that are
  2202. already defined as transaction elements; after you have redefined the
  2203. transaction block using Replicate, the new field will be incorporated in
  2204. the transactions.
  2205.  
  2206. EDITING TRANSACTION ENTRIES
  2207. Superbase provides three editing controls for use when you are entering
  2208. data in a new transaction form.
  2209.  
  2210. Ctrl D deletes the transaction line at the cursor, and closes up any line
  2211. above and below. Ctrl N inserts a new blank line on the line above the
  2212. cursor. Pressing the Escape key clears the field where the cursor is
  2213. currently positioned. Pressing it a second time, then clears all the fields
  2214. in the transaction line.
  2215.  
  2216. Note that these controls also have an effect on existing data, but it is
  2217. confined to the screen display. If you use Ctrol D to delete a line in a
  2218. set of transactions and then save the form, the data in the corresponding
  2219. fields will not be deleted at the record and file level.
  2220.  
  2221.                 S-53
  2222.  
  2223. 4. OTHER FEATURES
  2224. Program identification. The program editor now allows you to indent lines
  2225. in order to improve legibility or to exhibit the structure of the program
  2226. more clearly.
  2227.  
  2228. Outputting to the screen. In earlier versions of Superbase, placing a
  2229. semicolon at the end of an expression list with the ? command had the
  2230. effect of suppressing output to the screen; the expressions were not
  2231. displayed on screen until a new line was entered. In this version, the
  2232. screen is updated immediately irrespective of how the output is formatted.
  2233. For example:
  2234.  
  2235.     ? "one", "two", "three";
  2236.  
  2237. would display the expressions "one" "two" "three" straight away. The &
  2238. output format parameter. This parameter has now been modified to allow you
  2239. to specify the number of decimal places in the format when you are
  2240. outputting the results of calculations in a query or from a program. As
  2241. before,  & followed by an integer sets the maximum length for the text
  2242. strings or text fields. When it is followed by a decimal number, the &
  2243. parameter specifies the number of digits that will be displayed before and
  2244. after the decimal point. For example:
  2245.  
  2246.     ? &4.3 (Numfield/3)
  2247.  
  2248. ensures that the result of the calculation (Numfield/3) will be displayed
  2249. to three decimal places and with four digits before the decimal point.
  2250.  
  2251. The close gadget is disabled while a program is running Query Language
  2252. Commands. In the Keyword Reference Guide under the entry for SELECT, the
  2253. description given of the way the TO device options works is misleading. If
  2254. used, this option must be entered at the end of a query section,  and it
  2255. takes the place of the END SELECT statement. The correct syntax for the
  2256. SELECT command is:
  2257.  
  2258.     SELECT[params]fields: [statements]: END SELECT/TO
  2259.     device
  2260.  
  2261. An example would be:
  2262.  
  2263.     SELECT Firstname, Lastname, City
  2264.     WHERE Lastname LIKE["a-e"*]
  2265.     TO "aaa.asc"
  2266.  
  2267.                 S-54
  2268.  
  2269. The last line in this query section ensures that output is sent to
  2270. "aaa.asc",  an ASCII file on disk.
  2271.  
  2272. Date Format I. You can now specify a date format in which single digit days
  2273. and months are given a leading zero. This is done by replacing the first
  2274. 'd' in the format string with '0'; for example, instead of:
  2275.  
  2276.     DATEBASE "dd mmmm yyyy"
  2277.  
  2278. you would enter:
  2279.  
  2280.     DATEBASE "Od mmmm yyyy"
  2281.  
  2282. Date Format II. Any of the existing date formats that make use of spaces as
  2283. separators are now also available without spaces. For example:
  2284.  
  2285.     DATEBASE "dd mm yy"
  2286.  
  2287. which formate the date as 6 10 87, can also be entered as:
  2288.  
  2289.     DATEBASE "ddmmyy"
  2290.  
  2291. This would format the date as 61087.
  2292.  
  2293. Note that these new formats cannot be set from the date format dialog. If
  2294. you wish to set a date field to one these formats, use the MODIFY command
  2295. or edit the field definition in the '.sbd' file.
  2296.  
  2297. Time Format. Unlike the date format, the time format is not saved in the
  2298. SB.par file. If you alter the default time format in the date/time format
  2299. dialog (selecting it from the Set menu), the your new setting will only
  2300. apply for the current session. To set the time format so that it also
  2301. applies the next time you load Superbase, you should use the DATEBASE
  2302. command in conjunction with the Start program - define the format you
  2303. require with DATEBASE and insert the command in the Start program.
  2304.  
  2305. Draft Printing in the Forms Editor. In Draft mode, the Forms Editor now
  2306. prints boxes and lines as well as text.
  2307.  
  2308. Atari versions of Superbase now accept '.gem' image files in addition to
  2309. the other file formats listed in the Atari appendix.
  2310.  
  2311.                 S-55
  2312.  
  2313. 5. KEY CONTROLS
  2314.  
  2315. MENU SELECTION
  2316. The '^' character represents the Ctrol key. Thus ^B indicates that you
  2317. should press Ctrl and the letter B at the same time. On the Amiga, the
  2318. right Amiga key is the equivalent of the Alt key used in GEM versions of
  2319. Superbase.
  2320.  
  2321. KEY COMBINATION        MENU OPTION
  2322.  
  2323. Alt/Amiga O        Project Open File
  2324. Alt/Amiga I        Project Open Index
  2325. Alt/Amiga C        Project Close Fields
  2326. Alt/Amiga N        Record New
  2327. Alt/Amiga E        Record Edit
  2328. Alt/Amiga B        Record Batch
  2329. Alt/Amiga S        Record Save
  2330. Alt/Amiga T        Set Table View
  2331. Alt/Amiga R        Set Record View
  2332. Alt/Amiga F        Set Form View
  2333. Alt/Amiga D        System Directory List
  2334. Alt/Amiga X        System Directory Change
  2335. Alt/Amiga Y        System Status File
  2336. Alt/Amiga Z        System Status System
  2337. Alt/Amiga L        System List
  2338. Alt/Amiga A        Program Command
  2339.  
  2340. RECORD SELECTION
  2341. These keys are the equivalents of the record selection buttons on the
  2342. control panel. They do not operate when a cursor for data or text input is
  2343. on screen.
  2344.  
  2345. KEY                RECORD SELECTION BUTTON
  2346.  
  2347. Cursor right arrow        Next record
  2348. Cursor left arrow        Previous record
  2349. Cursor up arrow            Current record/previous page in a form
  2350. Cursor down arrow        Current record/next page in a form
  2351. Shift up arrow (Amiga)        Rewind
  2352. Shift down arrow (Amiga)    Fast Forward
  2353. Space bar            Pause
  2354. Shift left arrow (Amiga)    First Record
  2355. Insert (Atari)            First Record
  2356. Shift right arrow (Amiga)    Last Record
  2357.  
  2358.                 S-56
  2359.  
  2360. Clr Home (Atari)        Last Record
  2361. ^C                Stop
  2362. ?                Key Lookup
  2363. =                Filter
  2364. *                Camera
  2365.  
  2366. DATA ENTRY
  2367. These controls are used for editing the data you enter in fields and the
  2368. lines you enter in dialogs; e.g., filters, query command lines, formulas,
  2369. file and field names.
  2370.  
  2371. KEY/KEY COMBINATION        FUNCTION
  2372.  
  2373. Escape (Atari)        Clear line.
  2374. ^X (Amiga)        Clears line.
  2375. Alt/Amiga U        Undoes last deletion.
  2376. Cursor right arrow    Moves the cursor one character to the right.
  2377. Cursor left arrow    Moves the cursor one character to the left.
  2378. Home (Atari)        Moves the cursor to the start of the line.
  2379. Shift left arrow (Amiga)Moves the cursor to the start of the line.
  2380. Insert (Atari)        Moves the cursor to the end of the line.
  2381. Shift right arrow (Amiga)
  2382.             Moves the cursor to the end of the line.
  2383. Del            Deletes character to the right of the cursor.
  2384. Backspace        Deletes character to the left of the cursor.
  2385. Tab            Moves the cursor eight characters to the right.
  2386. Shift Tab        Moves the cursor eight character to the left.
  2387. Return            Moves the cursor to the next field down or, on
  2388.             a form, to the next field in entry order.
  2389. Shift Return        Moves the cursor to the field above or, on a
  2390.             form, to the previous field in entry order.
  2391.  
  2392. TEXT AND PROGRAM EDITING
  2393.  
  2394. KEY/KEY COMBINATION        FUNCTION
  2395.  
  2396. Shift up arrow (Amiga)    Scrolls window up text or program by one full
  2397.             screen.
  2398. Shift down arrow (Amiga)Scrolls window down text or program by one
  2399.             full screen.
  2400. Cursor left arrow    Moves cursor to next character to the left.
  2401. Cursor right arrow    Moves cursor to next character to the right.
  2402. Cursor up arrow        Moves cursor to the character in the same
  2403.             column on the line above.
  2404.  
  2405.                 S-57
  2406.  
  2407. Cursor down arrow    Moves the cursor to the character in the same
  2408.             column on the line below.
  2409. ^B            Takes the cursor to the first line in the
  2410.             text/program.
  2411. ^G            Takes the cursor to the last line in the
  2412.             text/program.
  2413. Shift left arrow (Amiga)
  2414.             Moves the cursor to the beginning of the
  2415.             current line.
  2416. Home (Atari)        Moves the cursor to the beginning of the
  2417.             current line.
  2418. Shift right cursor (Amiga)
  2419.             Moves the cursor to the end of the current line
  2420. Insert (Atari)        Moves the cursor to the end of the current line
  2421. Tab            Moves the cursor eight characters to the right.
  2422. Return            In Overwrite mode moves the cursor to the
  2423.             start of the next line.
  2424. Shift Tab        Moves the cursor eight characters to the left.
  2425. Backspace        Deletes the character to the left of the cursor
  2426. Del            Deletes the character to the right of the
  2427.             cursor.
  2428. ^D            Deletes the current line.
  2429. ^E            Deletes text from the cursor to the end of the
  2430.             line.
  2431. ^X            Deletes all the text on the line leaving a
  2432.             blank line.
  2433. ^U            Undoes the last deletion or insertion.
  2434. ^N            Creates a new line below the cursor.
  2435. ^S            Splits line at the point where the cursor is.
  2436. Return            Has same effect as ^S but in Insert mode only.
  2437.             Text Editor only.
  2438. ^A            Closes up a line after it has been split.
  2439. ^V            Toggles Insert and Overwrite modes on and off.
  2440.             Text Editor Only.
  2441. ^L            Marks the current line for copying.
  2442. ^R            Copies the line that has been marked by ^L, 
  2443.             inserting it below the cursor.
  2444. ^F            Reformats paragraph to the current ruler 
  2445.             settings. Text Editor only.
  2446. Alt/Amiga P        Toggles the Plain type style on and off. Text
  2447.             Editor only.
  2448. Alt/Amiga B        Toggles Bold on and off. Text Editor only.
  2449. Alt/Amiga U        Toggles Underline on and off. Text Editor only.
  2450. Alt/Amiga I        Toggles Italic on and off. Text Editor only.
  2451. Alt/Amiga H        Displays the Help window.
  2452.  
  2453.                 S-58
  2454.  
  2455. INDEX
  2456.  
  2457. & 1-54                    E
  2458.                     Editing Transactions 1-53
  2459. A                    ENTER 1-17
  2460. ASCII delimited files            Export 1-9, 1-20
  2461.   Importing 1-5                   File types 1-9
  2462. Attributes 1-44
  2463.   Colour modes 1-44            F
  2464.   Border 1-45                Field borders 1-44
  2465.   Border Colour 1-45            Field names 1-44
  2466.   Currency format 1-44            Field options 1-44
  2467.                     Field separators 1-7
  2468. B                    File Conversion 1-6
  2469. BLANK 1-15                Formatting report output 1-46
  2470. Border 1-45
  2471. Border Colour 1-45            I
  2472.                     Import 1-5, 1-23
  2473. C                      File Formats 1-5
  2474. CLOSE COMMS 1-34            Import file types 1-5
  2475. Colour modes 1-44
  2476. Comms 1-12                K
  2477. COMMS? 1-35                Key controls 1-56
  2478. COMMS COMMANDS 1-34            Keyboard equivalents 1-1, 1-56
  2479. COMMS FILE 1-36                
  2480. COMMS GET 1-35                L
  2481. COMMS INPUT 1-35            LOAD SET 1-25
  2482. COUNT 1-37                Logistix files 1-6
  2483. Currency format 1-44            Lookup 1-3
  2484.                     Lotus files 1-6
  2485. D
  2486. Date format 1-55            M
  2487. dBase conversion 1-20            Mail Merge 1-11
  2488. Dbase files 1-5                  Blank lines 1-11
  2489. DIF files 1-6                  Program commands 1-11
  2490. Dir Change 1-43                  Programming 1-11
  2491. Dir List 1-43                  Variables 1-11
  2492. Draft printing 1-55
  2493.  
  2494.                 INDEX-1
  2495.  
  2496. ============================================================================
  2497.      DOCS PROVIDED BY RAP AND -+*+-THE SOUTHERN STAR-+*+- for M.A.A.D.                                                               
  2498. ============================================================================
  2499.